Python, Pylons, Dads and Development

— 3 minute read

Way back in February, I did a quick talk at the Show & Tell event on a new side project of mine (slides over here) and forgot to publish this related blog post, hey ho! Here it is in reduced form:

Finder is simple web app to help parents discover and catalogue local child-friendly businesses, something I've built from personal need. It currently residing at finder.newdadsite.com and is in need of some content/contributions love (you can sign in via Twitter!). It makes use of some funky browser geo-location to make it extra useful, with fallback to plain old search.

Finder is a simple enough little app, and it gave me a great opportunity to use Python in anger; Previously I'd only really played about with it. I arrived at using Pylons for a number of reasons. Like most people who want to do some Python web-appery, I'd initially looked at Django, which seems to be the most talked of framework. Something about Django didn't really mesh with me, it's got its own way of doing things, and that wasn't an exact fit somehow - personal taste maybe.

Pylons felt, well, much more toolboxy. You could pull stuff in from all over, pick the modules you liked best. Particularly I like the SqlAlchemy/FormAlchemy combo, I've always felt that it should be easy to build a form from an existing model if you've used sensible naming conventions. Stuff like this:

class LocationFieldSet(FieldSet):

def \_\_init\_\_(self):

FieldSet.\_\_init\_\_(self, Location, session=Session)

self.configure(exclude=\[self.lat,self.long,self.added\])

is a really neat way to just  turn a model into a form for editing that model's data. Not part of Pylons, but I can chose to use it cos I like it (and I'm a fan of easy).

One thing I forgot to mention in my talk (well, I only had ten minutes!) was that Pylons in now merging with Repoze to become Pylons Project with a new framework called Pyramid... It'll be interesting to see what the future holds for it.