Home
Posted 24 Jul 2008 by Sean Creeley

What is Django?
Django is a python web framework that in their own words "encourages rapid development and clean, pragmatic design." It was originally developed developed by The World Company to manage their news properties in Lawrence, Kansas. It was open sourced in 2005 and has been gaining traction ever since. Often compared to Ruby on Rails, it is used in close to 1500 sites as listed on djangosites.org

Assemble?
When most technologists think of Django they think build, not assemble. Other solutions like Drupal and Joomla! are synonymous with assemble allowing users to plug and play with a high number of modules. Drupal especially makes it easy for the novice user to add functionality just by installing extensions and configuring it to work. So why am I talking about assembly with Django?

Django builds projects in apps, a series of functional blocks, i.e. blogs that are separated for reuse. Their overriding philosophy is "Do not Repeat Yourself" (DRY) and they encourage developers to use the same applications for different projects. Django community members are taking this one step further and open sourcing these apps for public use, the community as a whole doesn't repeat itself. Django Pluggables now lists 130 projects for public consumption and reuse. Some example applications include Coltrane, a blogging application, Django Tagging, a tagging add on so Tag any piece of content and Django Forum, a forum application.

Does it Work?
The best example of Django application assembly is Pinax an application based of the Hot Club of France project. Staying with the Django jazz theme, the Quintette du Hot Club de France was a jazz group, so as you might of guess the Hot Club of France project is a grouping of 24 community applications and 8 custom applications.

I would recommend signing into the demo site. It doesn't require an email or any commitment to poke around. You will see blogs, messaging, friends, wikis, groups, et al. Everything that makes up a community Web 2.0 site. Still thinking about building your next community site from scratch?

Why Django?
Django development is fast. Every site is different and there will always be a need for some custom development. Django was designed for a news room with deadlines, where new modules or features would have to be added in days not weeks. To illustrate, Django Dash challenges teams of 2 to build a site in 48 hours. Some of the results are impressive given the time constraints.

Conclusion
What I'm not saying here is that Django application assemble is quicker or easier than Drupal or Joomla!. It's very hard to compete with those two solutions for out of the box functionality. However if you are looking to build a custom application, but find yourself locked into default modules, than you should take a closer look at Pinax, Django Pluggables and Django application assembly.