Date Tags Python

One more Python web framework recently appeared. There is quite some buzz around it. Others pythonistas start playing with it and that’s fine.

I thought i’d give a look too and give my 2 cents of feedback and impressions. First off all the Django’s setup relies on the excellent Peak’s setuptools (think easy_install django) which is a good point (when will it be available in standard library ?). Second point, the dependencies list is quite tiny (which is relevant when you don’t host the website on a machine where you can install anything you want). You simply need Python, a database (mysql or pg) adapter (and python bindings), Apache and mod_python.

After installation i started reading the (only) tutorial. It’s as simple as creating a project, adding an application to it and start data modeling. Django comes with a light Object-Relational Mapper. It’s quite simple to use, but i would have preferred SQLObject, though i’m aware of the “yet one more dependency” issue.

Once the data model is designed, the database can be initialized (of course there is ad-hoc solution for that) and the application be started.

From the web developer point of view, Django has some killer features such as automatic admin interface generation. This is really handy, i think Ruby on Rails has also a mechanism like that (i don’t know it much, only seen the videos like the others . Anyway one drawback is that there is only one “deployment” model supported (mod_python). Though the Django developpers are working on a WSCGI implementation. I’d like to develop with Django as i do with Quixote, testing/debugging the application via a Medusa server, and deploy the final website using SCGI or mod_python.

The templating system won’t be a big deal if you already know Cheetah because the language syntax is really similar.

At last, i think Django will be a really good challenger. The code is light, understandable. There are few well-known names in the dev team. The framework has already been used for a bunch of high traffic websites… I’ll probably drop some more notes about Django later about other tasks like templating, admin, and so on.