Flagstaff is definitely the place that you are looking for. It is located right on your route and is about a 2 hour drive from Phoenix and a 1.5 hour drive from the canyon. Flagstaff has many lodging and eating options as well as an interesting historic downtown area with shops, galleries and often live music on weekends. Good places to eat include Beaver Street Brewery (on Beaver Street south of the old train depot), Oreganos Pizza (along South Milton near NAU), Bun Huggers Burgers (South Milton on way into town) and Crystal Creek Sandwiches (near Bun Huggers). Cafe Express is a great place downtown for breakfast.
Sedona and Oak Creek Canyon is a pretty place and a nice destination in its own right, but it is not along the main route from Phx to Flag and has much smaller, slower roads going both in and out. Going from Phx to the canyon via Sedona would probably add close to an hour to your driving and you will have fewer eating and lodging options (especially cheaper ones).
Keep in mind that if you hit Phoenix around rush hour on a weekday (6:30-9AM and 3:30-6:30PM, you could add a good 30-40 minutes or more to your trip).
Also as a poster above notes, keep in mind that Flagstaff and the South Rim are at 7000 feet elevation and so they often get snow storms and cold temps well into April (still a nice and much less crowded time to visit the canyon though). This another good reason to avoid the Sedona/Oak Creek route which you definitely don't want to drive in icy conditions.
Arizona resident and frequent Grand Canyon visitor and hiker. Grew up in Flagstaff and have driven between Flag, the Canyon, Phx and Sedona many times.