I am going to try something similar soon... I have a small database of about 40 locations, and I want the user to be able to filter these 40 locations by entering any zip code or city name, using a function that will return a list of location that are within a 5, 10, 15, 20, etc radius distance.
I am thinking of using geocoding web services to store the lat/lng for each location in the database. Then when the user enters a city name or a zip code, use one web service call to get the latitude/longitude of that, and do a straightforward non-trigonometric distance calculation (driving distance) in a python list comprehension.
So in answer to the question, I think that's what it involves but it could explode pretty fast if there is no way to limit the amount of calculations that need to be done.