Just discovered the Django web development framework, and I think I’m in love. It’s written in Python, and you can use it with mod_python and Apache, which means it’s more accessible than other Python frameworks. And it’s brilliant.
I’m starting to rewrite the CCIW website using Django, and I’m amazed at my progress. It comes complete with an object relational mapper (ORM) to do all the database stuff for you — you just write class definitions. Not only does it do all the backend stuff, dynamically create APIs for getting all related objects for a given object, and provide a very nice template engine, it also generates a wonderful administration interface for you, completely dynamically and for free! So far I’ve written the basic classes (about 15-20 tables in all), and written scripts (in python) for porting almost all the old data (I was amazed how much there is — 17,000 posts to the message boards!), done some of the actual website pages and configured the admin interface a bit. Here is a screenshot of the kind of interface you can create in literally a couple of lines of code:
Hopefully it won’t take me too long to get the whole website done. It should mean lots of new features for the members (e.g. searching, improved bookmarks), much easier moderation functionality for moderators and point and click interfaces for updating the website for CCIW staff (e.g. for adding camp details as above).