Greetings, and welcome to Django! We're glad to have you along on our journey. You will discover a powerful tool that lets you do everything rapidly—from designing and developing the original app and being able to make simple and quick changes that have a profound effect on its features and functionality without having to make major changes to the codebase.
There are already several Django books on the market, but ours differs from most in that we focus equally on three areas: Django basics, a variety of example applications, and advanced Django topics. Our intent is to make this the most well-rounded book on the subject, one you find useful regardless of background, and which will give you a complete picture of the framework and what you can do with it.
In Figure 0.1, you see recommended starting points for your reading depending on your Python and Django experience. Of course, we recommend a cover-to-cover treatment, but the diagram serves to help if time is not on your side. Regardless of your experience, you are always welcome to look at the applications because reading and studying code is one of the best ways to learn. Below the figure, we provide a chapter-by-chapter reading guide to further help direct you to where you need to read.
Part I, "Getting Started," covers the basic material needed to introduce users new to Django and/or Python, although we recommend Chapter 3, "Starting Out," even to advanced readers.
Chapter 1, "Practical Python for Django," is meant to introduce our readers who are new to Python. In one comprehensive chapter, we show you not only the syntax, but also go a bit more in-depth and expose you to Python's memory model and data types, especially constructs which are commonly used in Django.
Chapter 2, "Django for the Impatient: Building a Blog," is a "getting started" chapter for those who want to skip any Python introduction and want to dive immediately into a Django application that can be completed in 15-20 minutes. It gives a good overview of what's possible with the framework.
For those with a bit more patience, Chapter 3, "Starting Out," serves as an introduction to all of the foundations of developing Web-based applications (useful both for newbies and experienced coders alike). Once the formalities are over, we describe how each concept fits into the world of Django as well as what its philosophies are and how it may differ from other Web application frameworks.
Part II, "Django in Depth," covers all the basic components of the framework, laying the foundation for the example applications in Part III, " Django Applications by Example."
In Chapter 4, "Defining and Using Models," learn how to define and work with your data model, including the basics of Django's object-relational mapper (ORM) from simple fields up to complex relations.
Chapter 5, "URLs, HTTP Mechanisms, and Views," goes into detail on how Django handles URL processing and the rest of the HTTP protocol, including middleware layers, as well as how to use Django's time-saving generic views, and how to write custom or partially custom views from scratch.
Chapter 6, "Templates and Form Processing," is the final major piece of the framework, where we explore Django's template language and its form-handling mechanisms. It covers how to display data to your users and get data back from them.
In Part III, "Django Applications by Example," we create four distinct applications, each highlighting a different aspect or component of Django development, both to introduce new general ideas and to expand upon the concepts found in Parts I and II.
In Chapter 7, "Photo Gallery," learn how to apply the "Don't Repeat Yourself" convention to your URL structure and create a new thumbnail-creating image form field, while you make a simple photo gallery application.
Chapter 8, "Content Management System," contains two related approaches to creating a CMS or CMS-like system and covers the use of a number of "contrib" Django applications.
In Chapter 10, "Pastebin," learn the power of Django's generic views as we create a pastebin using almost no custom logic whatsoever.
Part IV, "Advanced Django Techniques and Features," is a collection of advanced topics, ranging from customizing Django's admin application to writing command-line scripts which interface with your Django applications.
Chapter 11, "Advanced Django Programming," covers a number of topics related to fleshing out your own application's code, such as RSS generation, extending the template language, or making better use of the Django admin application.
In Chapter 12, "Advanced Django Deployment," learn a number of tricks related to deploying Django applications or working with your app from outside your Django project's core code, such as command-line scripts, cron jobs, testing, or data import.
Part V, "Appendices," fills in the remaining gaps or addresses topics relevant to the rest of the book but which don't fit in well as full chapters. Learn the basics of the Unix command line, Django installation and deployment strategies, tools for development, and more.
Appendix A, "Command Line Basics," is an introduction to the Unix command line for those who haven't been exposed to it before now. Trust us—it's useful!
In Appendix B, "Installing and Running Django," learn how to install all the necessary components for running Django, including the various options for database and Web servers, as well as some tips on specific deployment strategies.
Appendix C, "Tools for Practical Django Development," outlines some basic development tools you may or may not be familiar with, including source control, text editors, and more.
Good developers write code, but great developers reuse somebody else's code! In Appendix D, "Finding, Evaluating, and Using Django Applications," we share some tips on the where and how of finding reusable Django applications.
Appendix E, "Django on the Google App Engine ," provides an exclusive look at how Google's new App Engine leverages Django, and you can also learn how to enable your Django applications to run under the App Engine framework.
In Appendix F, "Getting Involved in the Django Project," learn how to contribute to Django and become a part of the community.
Throughout this book, we use bold to introduce new or important terms, italics for emphasis, <http://links/> for URLs, and monospacing to delineate Python and command line material such as variable names or commands. Multiline blocks of code or command examples are in monospaced blocks, like so:
>>> print "This is Python!" This is Python!
We have made use of all three major platforms—Mac OS X, Linux, and Windows—when writing this book and the example applications. In addition, we've used all major browsers (although not all may be present in our screenshots), namely Firefox, Safari, Opera, and Internet Explorer.
You can contact the authors collectively at firstname.lastname@example.org. Our Web site, http://withdjango.com, contains a large amount of auxiliary material and is referenced in a number of places throughout the book.
© Copyright Pearson Education. All rights reserved.
This book covers a lot of the topics one needs to develop Django-framework websites, but many times I wished for more examples and more screenshots of web pages based on the code. Read morePublished 6 months ago by Steven Derosa
I am probably not entitled to make a review on this, Django (or Python -anything-), due to the fact that relatively I am very unexperienced but since I have a background history... Read morePublished 19 months ago by B D. Rodriguez
Used book to supplement UNIX/Linux 101 undergraduate college course that I taught in Fall'2011 ... I/class ran into multiple issues running book's sample code ... Read morePublished on January 11, 2012 by JCGARU
This book has a lot of information on Django but it assumes that the reader has previous knowledge of the development library. Read morePublished on February 10, 2011 by TK
Coverage in the first three chapters is okay. Even though when they start getting into examples, the authors seem to jump from Windows to Mac quite often. Read morePublished on July 20, 2010 by Sree
I probably would give the content of the book 4 stars.
However, the book claims in the preface that "monospacing [is used] to delineate Python and command line material... Read more
Well written book that explains how Python and Django work together. If you're new to either, this is a good place to start. Read morePublished on January 9, 2010 by David Alan Tussey
I found this book pretty ok, although there are some typos, some of the descriptions could be better .... Read morePublished on September 16, 2009 by Obi Wan Prep-Obi
I've found this book to be a very good source of information both for programmers with some Django experience as well as for those who are Django beginners. Read morePublished on June 18, 2009 by zeevb