What is Django ?
The Django website tag line reads: The web framework for perfectionists with deadlines. Sounds good, but what exactly is Django (pronounced JANG-oh). Django is a web application framework written in python. Like Ruby on Rails it follows the model-view-controller pattern.
The framework consists of:
- a object-relational mapper for dynamic database-access from python classes
- a clean, elegant URL scheme
- a templating system
- built-in admin interface and
- cache system
But enough jibber-jabber. Let me tell you why I enjoy working with Django.
Why I like it
Apart from the framework functionality, for me personally, the Django documentation plays a major role in its success and easy of use. The documentation is extensive and well written. We all know that to fully understand a framework you have to delve deep into the code, and you can do that if you like. But the overall enjoyment of that first “get something up and running” stage is the documentation. Head over here for some statistics about the Django documentation.
Next is the community. The Django community is friendly and helpful to programmers getting started with Django. Check out the #django channel on irc.freenode.org.
Lastly is python. I love python. I don’t want to get into the whole python vs ruby and django vs rails debacle. Django just “feels right” to me, which I’m guessing has a lot to do with the fact that its written in python.
The 1.2 release of Django is currently in beta and should be final by April 12, 2010. As a way to create awareness about the new features and techniques possible with the 1.2 release an “advent calendar” website was created called, Django Advent, similar to the very popular 24ways.org.
I am happy to report that I can finally say, without stipulation or hesitation, something I’ve been unable to say up until this point: Django 1.2 is capable of operating at web-scale.
- Mike Malone , infrastructure engineer at Simplegeo
Some of the new features includes multiple database support, model validation, vastly improved CSRF protection and admin UI improvements. Check out the Django Advent articles for more info.
Sites built with Django
The Django project originated from a online newspaper environment where the creators built intensive, content rich sites. The Django homepage features sites such as Lawrence.com, Washingtonpost.com, LJWorld.com and EveryBlock. My favourite being EveryBlock. The site shows news feeds with info regarding happenings in and around your neighborhood. Unfortunately its only available in the U.S.A. Due to a grant the team received, the backend code was open-sourced. You can check it out here.
Various startups have also employed Django technology. Back when Django was at version 0.96 engineers Mike Malone and Leah Culver built the social messaging website Pownce using Django. Even though Pownce closed down when it was acquired by Six Apart it was one of the largest Django sites on the web. Six Apart evolved the Pownce codebase and community into a open source microblogging platform, TypePad Motion, using the Django framework.
The original team that created Django include Adrian Holovaty, Simon Willison, Jacob Kaplan-Moss and Wilson Miner. Together Adrian and Jacob handle the duty of Benevolent Dictator For Life of the project. A complete list of core developers are available on the Django committers page. Another place to find interesting people involved with the project is the Django community aggregator. Its updated every hour with entries by people who are writing about Django.
Books and Resources
Conferences and Competitions
The two major Django conferences are Djangocon and Djangocon Europe. Djangocon is normally held around September in Portland, Oregon. The site should be updated in the coming months with info about the 2010 conference.
Djangocon Europe is held in Berlin in May this year. You can follow the djangocon twitter account for upcoming info.
Regarding competitions, I came across the Django Dash. Inspired from Rails Rumble. The idea is simple. You have 48 hours to design and build a working web application using Django from start to finish. Judges rate the applications on criteria such as level of polish, code quality, design and innovation. The tentative date for this year is around June. According to the djangodash twitter account the site will also get an overhaul.
I’m thinking about joining in on the fun, so if you have any ideas and want to brainstorm, get in touch with me. You can follow me on twitter here.
Update: According to the djangodash twitter account the dash has been pushed back to the end of July.
Update: Django 1.2 has been released, read about it here.
Update: Django 1.3 has been released, read about it here.