This is a small GeoDjango application that combines the OS OpenData point-based gazetteers – one for postcodes (such as SW1A 1AA), one for place names (such as Solihull), and one for street names (such as Baker Street or the A435) – in a simple look-up style application that also does reverse geocoding (point to closest feature).

It’s just a demonstration; a fully-fledged lookup would want to include some form of spelling correction (perhaps the metaphone algorithm I use on Theatricalia), and some way of filtering/ limiting search results for street names to a specific area. The source code is available on GitHub, if you wish to improve on this.