Django – a CMS framework for perfectionists with deadlines
Monday, February 2nd, 2009
A little while ago I said I’d start posting some reviews of good content management systems. Many of you are familiar w/t/Usual Suspects – WordPress, Drupal and Joomla – so I thought I’d start w/a review of something you may not have heard of: Django.
Django was developed by The World Company as a CMS for the Lawrence Journal-World, the newspaper in Lawrence, Kansas. It was developed for the fast-paced, high-traffic news environment and was designed to make it easy to set up and easy to plug/unplug various modules (”apps” or “models” as they are known in Django-lingo).
Incidentally, it was named after jazz guitarist Django Rheinhardt. As a musician myself, I appreciate that.
Django is Open Source. It has been released under a BSD license.
Nifty. But all of you who are looking for a 5-minute install FTW will be sadly disappointed. Django installs are not for the faint of heart. Unlike the Usual Suspects, which are written in PHP, Django was written in Python. It also requires some server administration skills to configure. Fortunately, there are some hosting providers who specialize in Django.
Though it can be a challenge to set up initially, once configured Django is designed so that you can very rapidly plug in different chunks of some pretty sophisticated interactive goodness depending on your needs.
The idea is that you don’t want to be reinventing the wheel for content management with every site. This is known as the DRY Principle.
With a basic, rock solid Django framework in place, Web designers and developers can focus on the fun stuff – a custom look and feel, CSS and extensions to Django’s core functionality.
Django’s great for big sites that need things like member management(w/varying access privileges), events calendars, e-commerce and job applications. In other words, for sites that need more than the simple blog-based content management WordPress provides.
Here’s the lowdown:
Pro
Solid modular code – you don’t have to reinvent the wheel or rewrite most of the bedrock code you’ll need for most sites. You can concentrate on customization. There are models for e-commerce, Google Calendar – you name it.
Speedy setup - no, it’s won’t be speedy the first time you do it. But once you’ve got the knack, it’ll be a breeze.
Plays nice w/Google – Python, Django’s bedrock language, is one of the three “official” languages supported by Google. You can run Django and Python on the Google App Engine – meaning apps you develop will scale easily while they hum along on Google AE’s servers.
Open Source – No licensing fees to obtain, and the codebase is supported by a large – and growing – developer community
Con
Python – Just when you thought you had learned all the code you needed to rule the Web (*sigh*). Once you learn it, however, Python is a “pro” and not a “con”.
Server Administration Skills required – Can you say “shell access”? There, I knew you could. Get ready to cuddle up w/your favorite Terminal app.
Maine Sites Running Django
Flyfi.com – Portland-based, a social-ly, musical-ly site. Formerly Goombah and run by Emergent Music.
Maine College of Art – an application for applying online.
Southern Maine Community College – a personalized information request form.
Django Links
Django Project – documentation, tutorials… and your gateway to the developer community.
Django for non-programmers – Jeff Croft has a great post on the benefits of Django for front-end designers.
Django – Google Code – If you need help, here’s one good place to look.
Django Facebook Group (requires FB Profile) – here’s another good place to look for help, if you’re on Facebook (and everyone’s on FB now, right?)
Django pluggables – apps you can plug into your Django project.
Have you tried the Django tango? What are your thoughts?











