What's a Web Framework and Why Should I Want One?
Taking Your First Steps with Django
CHAPTER 2 Your First Django Site: A Simple CMS
Configuring Your First Django Project
Introducing the Django Template System
CHAPTER 3 Customizing the Simple CMS
Adding a Search System to the CMS
Improving the Search Function with Keywords
CHAPTER 4 A Django-Powered Weblog
Standalone and Coupled Applications
Creating the Weblog Application
Slugs, Useful Defaults, and Uniqueness Constraints
Authors, Comments, and Featured Entries
Categorizing and Tagging Entries
Writing Entries Without Writing HTML
CHAPTER 5 Expanding the Weblog
Setting Up Views for Categories
Cleaning Up the URLConf Module
CHAPTER 6 Templates for the Weblog
Dealing with Repetitive Elements: The Power of Inheritance
How Template Inheritance Works
Limits of Template Inheritance
Defining the Base Template for the Blog
Displaying Archives of Entries
Defining Templates for Other Types of Content
Extending the Template System with Custom Tags
Writing a More Flexible Tag with Arguments
Registering and Using the New Tag
CHAPTER 7 Finishing the Weblog
Comments and django.contrib.comments
Implementing Model Inheritance and Abstract Models
Installing the Comments Application
Retrieving Lists of Comments for Display
Using Signals and the Django Dispatcher
Building the Automatic Comment Moderator
Using Django's Comment-Moderation Features
Creating the LatestEntriesFeed Class
Generating Entries by Category: A More Complex Feed Example
CHAPTER 8 A Social Code-Sharing Site
Building Initial Views for Snippets and Languages
CSS for pygments Syntax Highlighting
Improving the View of Top Authors
CHAPTER 9 Form Processing in the Code-Sharing Application
A Brief Tour of Django's Form System
Writing a Form for Adding Code Snippets
Writing a View to Process the Form
Writing the Template to Handle the add_snippet View
Automatically Generating the Form from a Model Definition
Simplifying Templates That Display Forms
CHAPTER 10 Finishing the Code-Sharing Application
Creating a New Template Tag: {% if_bookmarked %}
Parsing Ahead in a Django Template
Resolving Variables Inside a Template Node
Using RequestContext to Automatically Populate Template Variables
Adding an {% if_rated %} Template Tag
CHAPTER 11 Practical Development Techniques
Using Version-Control Systems to Track Your Code
Version-Control Tools and Hosting Options
Using Isolated Python Environments to Manage Software
Simplifying Your Django Development Process
Using Relative Paths in Settings
Dealing with Settings That Change for Different Environments
Unit-Testing Your Applications
CHAPTER 12 Writing Reusable Django Applications
Advantages of Tightly Focused Applications
Developing Multiple Applications
Drawing the Lines Between Applications
Splitting Up the Code-Sharing Application
Taking Advantage of Django's APIs
Distributing Django Applications
Writing a setup.py Script with distutils