:"Practical Django Projects" by James Bennett (APress)

Review of "Practical Django Projects"

Author: James Bennett
Publisher: APress (2008)
Review by: Cosimo
Rating: ****-
Date: 2009/08/06
Cover of the book

60" summary

It's a good book that walks the (beginner) developer through the first steps of web development with Django, with practical hands-on projects. Well written and filled with good advice.

Review

"Practical Django Projects" is about basic web development with Django. It targets mostly beginner developers. It can also be useful for more experienced developers that don't know Django at all.

It guides you through the first steps with Django, assuming almost no prior knowledge neither of Django nor of Python. Throughout the book there's some useful informative boxes that warn the user about potential problems or difficulties.
It's clear that the author has lots of experience with Django (he's a Django release manager), with web development in general and also with differences dealing with cross-platform code.

This book has two main topics.

The first one is introducing the most important features of the Django framework by illustrating 3 web projects:

These 3 projects are developed almost from scratch using builtin and custom Django applications like building blocks. Some external Python (and sometimes Javascript) libraries are also used to extend functionality whenever interesting or possible. For example, the TinyMCE component is used to provide a rich text editor control, or the Markdown library is used to parse blog comments and generate HTML from them.

The reader can learn how to:

The other main topic that permeates the book, is the web sites vs. applications concept. The author explains how and why Django helps development of small, very focused applications instead of creating a 1:1 relationship between your web site and your application.

Web sites can be (usually) built of several different applications, each of which being strictly focused on just one task. For example, login or authentication should be served by one application, comments on a blog should be another application's concern, and so on.

Bennett, and the architecture of Django itself, guides the developer towards this multiple applications paradigm, because it favors reusability and avoids the "feature creep", that is, adding too many features in one application, making it difficult to reuse it.

Conclusions

Personally, I would suggest this book to beginners. I think it's done very well, it's a complete walk-through to build your own application and understand how Django works by adding small bits and pieces, one step at a time.

It can also be useful for seasoned developers if you come from the Ruby world (Rails) or the Perl world (Catalyst) and you would like to know more about Django basic features. Probably in this case, other Django books can be more useful than this one. I'm thinking about "Pro Django", or "The definitive guide to Django", but I'm just assuming because I didn't read those yet.

Pros

Cons

I don't think there's any, but if you're an experienced developer that already knows a bit of Django, you probably want to look elsewhere.