Оглавление
Предисловие
Благодарности
Введение

Часть I. Введение

Глава 1. Практическое введение в Python для Django

Практические приемы владения Python и Django
Введение: интерактивный интерпретатор языка Python
Основы Python
Комментарии
Переменные и присваивание значений
Операторы
Стандартные типы данных в языке Python
Логические значения объектов
Числа
Числовые операторы
Встроенные и фабричные функции для работы с числами
Последовательности и итерируемые объекты
Списки
Строки
Встроенные и фабричные функции последовательностей
Отображения: словари
В заключение о стандартных типах данных
Управление потоком выполнения
Условная инструкция
Циклы
Обработка исключений
Предложение finally
Возбуждение исключений с помощью инструкции raise
Файлы
Функции
Объявление и вызов функций
Функции - это обычные объекты
Анонимные функции
*args и **kwargs
Декораторы
Объектно-ориентированное программирование
Определение классов
Создание экземпляров
Создание подклассов
Вложенные классы
Регулярные выражения
Модуль re
Поиск и соответствие
Типичные ошибки
Кортежи с единственным элементом
Модули
Изменяемость
Конструктор и метод инициализации
Стиль оформления программного кода (PEP 8 и не только)
Отступы в четыре пробела
Используйте пробелы, но не символы табуляции
Не записывайте короткие блоки программного кода в одной строке с заголовком инструкции
Создавайте строки документирования
В заключение

Глава 2. Django для нетерпеливых: создание блога

Создание проекта
Запуск сервера разработки
Создание приложения блога
Создание модели
Настройка базы данных
Использование сервера баз данных
Использование SQLite
Создание таблиц
Настройка автоматизированного приложения
администрирования
Опробование приложения администрирования
Создание общедоступного раздела приложения блога
Создание шаблона
Создание функции представления
Создание шаблона адреса URL
Заключительные штрихи
Усовершенствование шаблона
Упорядочение по дате
Форматирование даты и времени с помощью фильтра
В заключение
Глава 3. Начало
Основы динамических веб-сайтов
Взаимодействие: HTTP, URL, запросы, ответы
Хранилища данных: SQL и реляционные базы данных
Представление: шаблоны отображения в разметку HTML и в другие форматы
Сложим все вместе
Понимание моделей, представлений и шаблонов
Выделение уровней (MVC)
Модели
Представления
Шаблоны
Общий обзор архитектуры Django
Основные принципы Django
Django стремится быть Питонической
Не повторяйся (Don\'t Repeat Yourself, DRY)
Слабая зависимость и гибкость
Быстрая разработка
В заключение

Часть II. Подробно о Django

Глава 4. Определение и использование моделей

Определение моделей
Преимущества ORM
Богатый набор типов полей в Django
Отношения между моделями
Наследование модели
Вложенный класс Meta
Регистрация в приложении администрирования и дополнительные параметры
Использование моделей
Создание и изменение базы данных с помощью утилиты manage.py
Синтаксис запросов
Использование возможностей SQL, не предоставляемых платформой Django
В заключение

Глава 5. Адреса URL, механизмы HTTP и представления

Адреса URL
Введение в URLconf
Замещение кортежей функциями url
Использование нескольких объектов patterns
Включение других файлов URLconf с помощью функции include
Объекты функций и строки с именами функций
Моделирование HTTP: запросы, ответы и промежуточная обработка
Объекты запросов
Объекты ответов
Промежуточная обработка
Представления/управляющая логика
Просто функции на языке Python
Универсальные представления
Полууниверсальные представления
Собственные представления
В заключение

Глава 6. Шаблоны и обработка форм

Шаблоны
Понимание контекста
Синтаксис языка шаблонов
Формы
Определение форм
Заполнение форм
Проверка и очистка
Отображение форм
Виджеты
В заключение

Часть III. Приложения Django в примерах

Глава 7. Фотогалерея

Модель
Подготовка к выгрузке файлов
Установка PIL
Проверка поля ImageField
Создание нашего собственного поля файла
Инициализация
Добавление атрибутов в поле
Сохранение и удаление миниатюры
Использование ThumbnailImageField
Применение принципа "не повторяйся" к адресам URL
Схема адресов элементов Item приложения
Соединяем все это с шаблонами
В заключение

Глава 8. Система управления содержимым

Что такое система управления содержимым?
Альтернатива системе управления содержимым: Flatpages
Включение приложения Flatpages
Шаблоны Flatpages
Тестирование
За рамками Flatpage: простая система управления содержимым
Создание модели
Импортирование
Заключительная модель
Управление доступностью статей для просмотра
Работа с форматом Markdown
Шаблоны адресов URL в urls.py
Представления административного раздела
Отображение содержимого с помощью универсальных представлений
Шаблоны
Отображение статей
Добавление функции поиска
Управление пользователями
Поддержка производственного процесса
Возможные улучшения
В заключение

Глава 9. Живой блог

Что такое Ajax?
В чем состоит польза Ajax
Проектирование приложения
Выбор библиотеки Ajax
Структура каталогов приложения
Внедрение технологии Ajax
Основы
Символ "X" в аббревиатуре Ajax (или XML и JSON)
Установка библиотеки JavaScript
Настройка и тестирование библиотеки jQuery
Создание функции представления
Использование функции представления в JavaScript
В заключение

Глава 10. Pastebin

Определение модели
Создание шаблонов
Определение адресов URL
Запуск приложения
Ограничение числа записей в списке последних поступлений
Подсветка синтаксиса
Удаление устаревших записей с помощью задания cron
В заключение

Часть IV. Дополнительные возможности и особенности Django

Глава 11. Передовые приемы программирования в Django

Настройка приложения администрирования
Изменение расположения и стилей элементов с помощью параметра fieldsets
Расширение базовых шаблонов
Добавление новых представлений
Декораторы аутентификации
Приложение Syndication
Класс Feed
Определение адреса URL ленты
Дополнительные возможности работы с лентами
Создание загружаемых файлов
Конфигурационные файлы Nagios
vCard
Значения, разделенные запятыми (CSV)
Вывод диаграмм и графиков с помощью библиотеки PyCha
Расширение механизма ORM с помощью собственных подклассов Manager
Изменение множества объектов, возвращаемых по умолчанию
Добавление новых методов в подклассы Manager
Расширение системы шаблонов
Простые специализированные теги шаблонов
Теги включения
Специализированные фильтры
Более сложные специализированные теги шаблонов
Альтернативные системы шаблонов
В заключение

Глава 12. Передовые приемы развертывания Django

Создание вспомогательных сценариев
Задания cron, выполняющие очистку
Импорт/экспорт данных
Изменение программного кода самой платформы Django
Кэширование
Типичный пример кэширования
Стратегии кэширования
Типы механизмов кэширования
Тестирование приложений на платформе Django
Основы доктестов
Основы модульного тестирования
Запуск тестов
Тестирование моделей
Тестирование всего веб-приложения в целом
Тестирование программного кода самой платформы Django
В заключение

Часть V. Приложения

Приложение A. Основы командной строки

Ввод "команды" в "командную строку"
Ключи и аргументы
Каналы и перенаправление
Переменные окружения
Пути
В заключение

Приложение B. Установка и запуск Django

Python
Mac OS X
UNIX/Linux
Windows
Обновление путей поиска
Тестирование
Необязательные дополнения
Django
Официальные выпуски
Версия в разработке
Установка
Тестирование
Веб-сервер
Встроенный сервер: не для работы в нормальном
режиме эксплуатации
Стандартный подход: Apache и mod_python
Гибкая альтернатива: WSGI
Другой подход: flup и FastCGI
База данных SQL
SQLite
PostgreSQL
MySQL
Oracle
Прочие базы данных
В заключение

Приложение C. Инструменты разработки для платформы Django

Управление версиями
Ствол и ветви
Слияние
Централизованное управление версиями
Децентрализованное управление версиями
Управление версиями в вашем проекте
Программное обеспечение управления проектами
Trac
Текстовые редакторы
Emacs
Vim
TextMate
Eclipse

Приложение D. Поиск, оценка и использование приложений на платформе Django

Где искать приложения
Как оценивать приложения
Как пользоваться приложениями
Передача собственных приложений

Приложение E. Django и Google App Engine

Назначение платформы App Engine
Приложения, опирающиеся исключительно на использование App Engine
Ограничения платформы App Engine
Проект Google App Engine Helper для Django
Получение SDK и Helper
Подробнее о Helper
Интегрирование App Engine
Копирование программного кода App Engine в проект
Интегрирование App Engine Helper
Перенос приложения на платформу App Engine
Опробование
Добавление данных
Создание нового приложения на платформе
Django, использующего возможности App Engine
В заключение
Ресурсы в Интернете

Приложение F. Участие в проекте Django
Алфавитный указатель