Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Practical Django Projects Book Review

October 06, 2008

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.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.