Practical Django Projects is a collection of three development projects for the beginning web developer to do. In my review of Apress' earlier volume in this arena, I noted that The Definitive Guide to Django lost the forest for the trees a bit. It is a technically excellent book, but what was missing was a book of guided projects for readers to learn by doing. In Practical Django Projects, James Bennett fills the void and comes through with a series of projects that are both didactic and practical.
Project One: CMS
The first of the three projects is a content management system (CMS). As a web framework, Django naturally must excel at content management. Bennett shows how to develop a dialogue-based web application for web site management. He then dresses it up a bit with a rich text editor. The project finishes with the addition of keyword search functionality.
Project Two: Blogging
From the CMS, the reader is taken further to building a weblog system. This is not a simple re-dressing of the first project. Rather, Bennett shows how to develop a system that could easily be made to replace many of the bulwark blog systems in use today. By the time you are done with Bennett's second project, you have a blog application that has around 80% of the core functionality of WordPress - including categories, tags, live entry editing, comments, moderation, templates, archiving, and more.
Project Three: Code Sharing
The third and final project is a site for sharing programs Google Code-style. Built into the project is a user login system, rating system, and indexing functionality for lists of top authors. As with the previous two projects, one is left with an application that could easily be developed into a public-facing utility.
The book begins with some preliminaries to get the reader up and running with Django. After the walking through the three projects, it finishes off with a chapter on writing reusable code. This was, frankly, a breath of fresh air. It builds on what Bennett exemplifies in the previous chapters and does so in a way that maximises take-away.
Practical Django Projects is excellent for someone who knows Python and wants more than a basic understanding of Django in a short time. The information will certainly pay high dividends for time invested. Where the guide to Django gave technical information, Bennett's book provides real-life lessons from the trenches of modern web development.