In playing with the Django application framework, you quickly gain an appreciation for how nice it is to work with. Coming from other PHP style frameworks that felt a little cumbersome, Django hits the sweet spot between customization and self-management. Define a few models, you’ve got a database schema. Define a few views and templates, and you’re well on your way to a full-fledged web application. Template inheritance? Beautiful. No more copy & paste of headers and footers, or side-navs. Define a base template and extend from there.
Also, the pluggable architecture. A few folks have developed some ‘plugin’ applications that give you huge gains on functionality without writing much code at all. django-registration, gives you a signup (with activation via e-mail) along with the usual authentication. django-voting, allows you to assign voting capabilities to any model you define. django-discussion, builds a commenting structure for use on any model (includes replying, nesting, etc). How cool is that?
The community. Can you ask for a better community? Many times getting up and running with a new technology requires lots of reading and ‘Hello World’ apps. Django provides this, but gives you more realistic examples. Then, if you’re having a problem, head over to the IRC channel. It’s amazing. Everyone is very friendly. Have a pastebin ready, as there’s no better way to diagnose code than to see it.