From Beginner to Expert
The Definitive Guide to Django is divided into three sections: the fundamentals, the subframeworks, and appendices of reference material. This is not intended as a reference work but as a guide. It takes as its aim to make the reader an expert on Django by the end of the book. In this it largely succeeds by copious amounts of examples to explain the core concepts and functions involved in developing with Django.
Section One: Fundamentals
The first of the book's three parts are meant to train a Python programmer in the fundamentals of Django web development. By the end of the eight chapter, one has an intermediate website that is able to handle user input intelligently. Django relies heavily on the MVC (Model-View-Controller) design pattern. The authors consequently revisit that paradigm repeatedly and in various ways. Where non-Django elements are involved, however, they point in the right direction and leave the reader to follow through (e.g., databases). This makes for a well layed out guide to the framework and keeps the discussion focused.
Section Two: How do I...?
The second section discusses Django's sundry subframeworks in considerable depth. Where the first part takes the reader to the point of creating a reasonably sophisticated website, this second part discusses the ways Django resolves various web development problems. One could call it the "How do I...?" section. Topics covered include:
- using Django to generate PDFs and CSVs
- pinging search engines automatically whenever the site is updated
- extending the template engine
- using cookies to manage sessions
- internationalisation issues
Section Three: Appendices
The final part of the book contains eight appendices which offer intermediate and experienced Django developers significant help in lobbying for and managing Django solutions. The first appendix gives case studies of successful deployments in various circumstances - including a web application being served at 300 requests per second - in order to illustrate how flexibly and reliably Django can be deployed. The several other appendices cover advanced points of concern such as Django's model definition, database API, and internal settings.
The book rounds out with a well-designed index which, when combined with the detailed table of contents, makes finding information quickly relatively easy. This is the definitive treatment of Django as it stands in early 2008. Written by the Benevolent-Dictators-for-Life of Django, one cannot think of a better way to teach oneself perhaps the most popular web framework for Python.