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.