There are lots of 'fancy' places, but honestly I think the best food is in the markets! You just order food from different stands, sit down, and they bring you the food. You go around and pay after you finish your meal. It's so fun because you can try lots of things and there's a nice buzz to every market.
My favorite markets are La Cosecha and Pochote (this is on the street Marcos Perez between Privada La Paz and Joaquín Amaro). You also have to check out Mercado de La Merced (eat at Fonda la Florecita), and 20 de Noviembre (the main market), which is next to Benito Juarez (has crafts and well, everything). For a very overwhelming, but amazing, experience, go to Abastos. You can google all of these and walk to them from the center of the city.
Boulenc - Great for breakfast (but they stop serving breakfast at 2 so don't sleep in!)
La Popular - it's best to eat the street cart quesadillas that are on the corner, across from La Popular, and then get drinks inside La Popular. Ask the wait staff at La Popular if it's ok if you do this before you bring in outside food.
La Zandunga - Good food, great cocktails.
San Pablo - Good food, great view. A little pricey for Oaxaca (by which I mean, the price of a meal for two is probably what you would pay for one person going out to dinner in San Francisco).
Origen - I like this place, but it is a little over-hyped. A little pricey for Oaxaca also. It's cozy. Great for a romantic dinner.
Los Danzantes - I haven't been here, but it has been recommended (though is probably also over-hyped). When we tried to go they said we needed a reservation, so I'd try for a reservation if you want to go. It looks like a jungle inside hah.
La Jicara - Good for a casual lunch or dinner. There's a bookstore connected to it, so you can linger. There's also wifi (I've done work here) and the menu is vegan/vegetarian/paleo friendly. I like their chicken curry.
Sabina Sabe - ASk for a cocktail with the corn whiskey by Pierde Almas.
There are SO MANY MORE. If you are looking for something specific, let me know. I'll rack my brain.
Note: There isn't really drip coffee (or at least I haven't found it) -- so I'd stick to latte or cappuccino (I'm kinda a coffee snob). If you order a cold drink, maker sure you clarify if you don't want sugar, whipped cream, etc., because they often come like desserts.
Café Brujula - The one at Calle Macedonio Alcalá 104 is my favorite because there is a courtyard. They all have wifi, but it's sometimes spotty.
Café Caracol Purpula - It's at Calle Porfirio Díaz 810. They just changed their hours so now they close at 5pm, which is annoying as it used to be my favorite late afternoon spot. It's cute and and unpretentious. They have wifi.