Most helpful critical review
33 of 35 people found the following review helpful
A reasonable introduction to Django
on December 22, 2008
We are a Python shop at work and have recently started developing in Django. So I picked this book up as a total beginner to Django, but an experienced Python programmer. I feel that the book would be more or less the same even for someone totally new to Python, because Django is definitely a different kind of beast.
Overall, this book was okay to good. I would give it 3.5 stars if I could. It is definitely targeted at beginners to Django (and possibly Python). As a Django beginner, I first ran through the tutorial on the Django website, because it is very thorough and good. I definitely recommend that as a starting place regardless of which book you end up buying. Then I cracked open this book. The first chapter is a 50-page introduction to Python, so I skipped that. Chapter 2 is a tutorial in which you build a simple blog. So by the time I had finished that chapter, I had built two different Django sites but not really read anything about the language or framework or theory thereof. I think this is a good thing, and this chapter is well-placed. Chapter 3 introduces Django. It covers dynamic web sites, communication, data storage, presentation, separating the layers (MVC), general django architecture, and "core philosophies of Django". It is a decent introduction, though I read through it quickly so I could get to the next three chapters.
The next three chapters make up the Django in Depth section and are the bread-and-butter of the book. The first chapter covers models, the second URLs/HTTP/views, and the third templates and form processing. For me, these were the chapters I was most looking forward to, where I would learn everything I needed to know to get started really understanding. And they let me down a bit. Each one was good in what it covered, but the problem was that it left out quite a bit. The part on the models themselves was pretty good and covered the necessities. But the part on querying was a little sparse. They left much for the reader to go to the documentation and find out. (But what's the point of the book, then?) I did think it was nice that they mentioned fixtures, as I had trouble finding that information online when I needed to set one up for work. The chapter on views was decent, but seemed to leave out too much detail. The section covering views specifically was short. Finally, the template/forms chapter again left the reader to find out critical details in the online documentation. First, the template section was short. Second, the forms section seemed long enough, but I just found that it wasn't that helpful when I was really creating forms for work.
The next four chapters are tutorials in which you build various applications. I haven't gone through these yet, but they look pretty good. I think Django is one of those things that is best learned in a very hands-on fashion. Perhaps some of the weaknesses of the previous three chapters are made up for here; but I doubt it, and if so feel that information should have still been included in the earlier chapters. (The book is fairly slim and could definitely be expanded.) Chapter 11 covers advanced Django programming, including customizing the admin, using syndication, generating downloadable files, enhancing Django's ORM with custom managers, and extending the template system. The chapter seems decent enough, although I haven't had to do any of these things yet. Likewise, with Chapter 12 covering advanced Django deployment, I haven't had to deploy anything yet so I only know that the chapter seems to cover some useful information.