Book Review: Django 1.0 Web Site Development

I just finished “Django 1.0 Web Site Development” by Ayman Hourieh (2nd Ed). Packt sent me a copy and I was happy to read it. I thoroughly enjoy Python and Django and would like to see it more broadly adopted, so anything that helps people get started is a good thing.

Ayman’s book is clean and crisp. The book is built around a single cohesive example: Building a Delicious-style collaborative bookmark application with Django. That was a great pick for an example app. It’s easy to get your head around yet broad enough to provide good coverage of the topic. I also liked that Ayman threw in some JQuery to add a few AJAX features to the app. It was just the right amount to give you the idea without turning into a book on AJAX or UX development. Readers are similarly spared from wasting too much time on look-and-feel. CSS is kept to a minimum so that the focus remains squarely on Django.

Ayman flows logically from topic to topic. The book starts with a simple example and then gradually adds features until you’ve got a decent little app by the end. Within and between topics, the reader always has a good feel for what’s going on and what’s coming next. Initially, I was surprised that the admin UI–one of the cool time-saving features of Django that comes out of the box–was covered so late in the book, but later I decided that Ayman’s decision to focus on the shell to show API examples and test the app’s back-end was the right way to go. Chapter 12 is pretty weak–I would have traded most of the “ideas for evolving your bookmarking app” content for a discussion around Django on Google App Engine or maybe go deeper on some of the more interesting topics in that chapter that are only briefly covered, but that’s a minor nitpick.

I really enjoyed this book. Can you tell? Part of it is that Python and Django are such a pleasure to work with. The book itself is almost a metaphor: It’s concise (250 pages), well-written, and fun. If you’re new to the framework this book is a good way to see what all of the fuss is about.