Practical Django Projects Book Review
With the Django 1.0 milestone having recently hit, Django-fever is spreading as is indicative by the number of Django-related books showing up on bookstore shelves. One of these is James Bennett's Practical Django Projects, published by Apress. Read on for my review.
James Bennett is the Django Release Manager and knows a thing or two about the Django framework. However, rather than pimp his expansive knowledge of Django, he takes a much gentler and considerably more approachable approach with Practical Django Projects. This book is ideal for the impatient or overwhelmed developer who is seeking a fast yet competent introduction to this red-hot Python-based web framework. Compared to other Django books currently on the market, James' book is shorter on volume yet condensed with solid real-world applicability.
The first chapter, a mere 8 pages, dives right into a brief installation, configuration and execution of Django. Chapter 2 begins the book's CMS project, introducing the Django admin and template system long before many other Django books and tutorials typically do. I liked the approach, as it shows off Django's beautiful admin and addresses the presentation abstraction question that Ruby on Rails and other developers often seek to validate for 'real' web framework essentials. Chapter 3 spruces up the work done in Chapter 2 with the addition of a Javascript-based rich text editing add-on and the creation of a search page/context.
The next four chapters help readers construct a Django-powered weblog application teaching and demonstrating models, views, more templates, dispatchers and enhancements like feeds, e-mail notifications and hooking into commercial web services like Akismet.
The last project in the book, a social code-sharing site, spans three chapters and covers such topics as creating more advanced models and views, employing django.newforms system, form generation, validation and processing, template tags and variables and more. The last chapter on "Writing Reusable Django Applications" is tremendously insightful 20-page discussion on invaluable lessons learned from the author's obviously deep experience on the subject and perfectly concludes the book with valuable knowledge to grow upon.
Make no mistake, this is much more than a quick tutorial book. The author assumes up front that the reader has a good grasp of the Python language and moves steadily through a series of progressively advanced topics in a short amount of time. I actually read the book twice, once away from my computer and again in front of it, coding along with the projects. I definitely recommend the latter as the better learning model. Additionally, the author's "Admonition" (a.k.a., tips) call-outs collectively compile a concise Django 'cookbook' of sorts, and his matter-of-fact style cuts through the marketecture jargon sometimes associated with books selling the promise of a new silver bullet.
James closes his book the same way he opened it, with a reminder that "Django's job is to make web development fun again." This book succeeds in paying that message forward.

