I. Введение 31
1. Практическое введение в Python для Django 33
Практические приемы владения Python и Django 34
Введение: интерактивный интерпретатор языка Python 35
Основы Python 37
Комментарии 37
Переменные и присваивание значений 38
Операторы 38
Стандартные типы данных в языке Python 39
Логические значения объектов 39
Числа 40
Числовые операторы 41
Встроенные и фабричные функции для работы с числами 42
Последовательности и итерируемые объекты 43
Списки 46
Строки 49
Встроенные и фабричные функции последовательностей 56
Отображения: словари 57
В заключение о стандартных типах данных 60
Управление потоком выполнения 60
Условная инструкция 61
Циклы 61
Обработка исключений 63
Предложение finally 64
Возбуждение исключений с помощью инструкции raise 64
Файлы 66
Функции 67
Объявление и вызов функций 67
Функции - это обычные объекты 70
Анонимные функции 72
*args и **kwargs 74
Декораторы 78
Объектно-ориентированное программирование 79
Определение классов 80
Создание экземпляров 81
Создание подклассов 82
Вложенные классы 83
Регулярные выражения 84
Модуль re 84
Поиск и соответствие 84
Типичные ошибки 85
Кортежи с единственным элементом 85
Модули 85
Изменяемость 87
Конструктор и метод инициализации 90
Стиль оформления программного кода (РЕР 8 и не только) 91
Отступы в четыре пробела 91
Используйте пробелы, но не символы табуляции 92
Не записывайте короткие блоки программного кода в одной строке с заголовком инструкции 92
Создавайте строки документирования 92
В заключение 94
2. Django для нетерпеливых: создание блога 95
Создание проекта 96
Запуск сервера разработки 98
Создание приложения блога 100
Создание модели 101
Настройка базы данных 101
Использование сервера баз данных 102
Использование SQLite 102
Создание таблиц 104
Настройка автоматизированного приложения администрирования 105
Опробование приложения администрирования 107
Создание общедоступного раздела приложения блога 112
Создание шаблона 112
Создание функции представления 113
Создание шаблона адреса URL 114
Заключительные штрихи 115
Усовершенствование шаблона 115
Упорядочение по дате 116
Форматирование даты и времени с помощью фильтра 118
В заключение 118
3. Начало 120
Основы динамических веб-сайтов 121
Взаимодействие: HTTP, URL, запросы, ответы 121
Хранилища данных: SQL и реляционные базы данных 121
Представление: шаблоны отображения в разметку HTML и в другие форматы 122
Сложим все вместе 123
Понимание моделей, представлений и шаблонов 123
Выделение уровней (MVC) 123
Модели 125
Представления 125
Шаблоны 126
Общий обзор архитектуры Django 126
Основные принципы Django 128
Django стремится быть Питонической 128
Не повторяйся (Don’t Repeat Yourself, DRY) 129
Слабая зависимость и гибкость 129
Быстрая разработка 130
В заключение 131
II. Подробно о Django 133
4. Определение и использование моделей 135
Определение моделей 135
Преимущества ORM 135
Богатый набор типов полей в Django 137
Отношения между моделями 140
Наследование модели 145
Вложенный класс Meta 149
Регистрация в приложении администрирования и дополнительные параметры 151
Использование моделей 152
Создание и изменение базы данных с помощью утилиты manage.py 152
Синтаксис запросов 154
Использование возможностей SQL, не предоставляемых платформой Django 164
В заключение 168
5. Адреса URL, механизмы HTTP и представления 170
Адреса URL 170
Введение в URLconf 171
Замещение кортежей функциями url 172
Использование нескольких объектов patterns 173
Включение других файлов URLconf с помощью функции include 174
Объекты функций и строки с именами функций 175
Моделирование HTTP: запросы, ответы и промежуточная обработка 176
Объекты запросов 177
Объекты ответов 180
Промежуточная обработка 181
Представления/управляющая логика 183
Просто функции на языке Python 183
Универсальные представления 184
Полууниверсальные представления 187
Собственные представления 188
В заключение 190
6. Шаблоны и обработка форм 191
Шаблоны 191
Понимание контекста 192
Синтаксис языка шаблонов 193
Формы 199
Определение форм 199
Заполнение форм 205
Проверка и очистка 207
Отображение форм 209
Виджеты 211
В заключение 214
III. Приложения Django в примерах 215
7. Фотогалерея 217
Модель 218
Подготовка к выгрузке файлов 219
Установка PIL 221
Проверка поля ImageField 222
Создание нашего собственного поля файла 224
Инициализация 225
Добавление атрибутов в поле 227
Сохранение и удаление миниатюры 228
Использование ThumbnaillmageField 229
Применение принципа «не повторяйся» к адресам URL 231
Схема адресов элементов Item приложения 233
Соединяем все это с шаблонами 235
В заключение 240
8. Система управления содержимым 242
Что такое система управления содержимым? 242
Альтернатива системе управления содержимым: Flatpages 243
Включение приложения Flatpages 244
Шаблоны Flatpages 245
Тестирование 246
За рамками Flatpage: простая система управления содержимым 247
Создание модели 248
Импортирование 250
Заключительная модель 250
Управление доступностью статей для просмотра 251
Работа с форматом Markdown 252
Шаблоны адресов URL в urls.py 255
Представления административного раздела 257
Отображение содержимого с помощью
универсальных представлений 260
Шаблоны 261
Отображение статей 263
Добавление функции поиска 264
Управление пользователями 267
Поддержка производственного процесса 268
Возможные улучшения 268
В заключение 270
9. Живой блог 271
Что такое Ajax? 272
В чем состоит польза Ajax 272
Проектирование приложения 273
Выбор библиотеки Ajax 274
Структура каталогов приложения 275
Внедрение технологии Ajax 279
Основы 279
Символ «X» в аббревиатуре Ajax (или XML и JSON) 280
Установка библиотеки JavaScript 281
Настройка и тестирование библиотеки jQuery 282
Создание функции представления 284
Использование функции представления в JavaScript 283
В заключение 285
10. Pastebin 290
Определение модели 291
Создание шаблонов 293
Определение адресов URL 294
Запуск приложения 296
Ограничение числа записей в списке последних поступлений 300
Подсветка синтаксиса 302
Удаление устаревших записей с помощью задания cron 303
В заключение 304
IV. Дополнительные возможности и особенности Django 305
11. Передовые приемы программирования в Django 307
Настройка приложения администрирования 307
Изменение расположения и стилей элементов
с помощью параметра fieldsets 308
Расширение базовых шаблонов 310
Добавление новых представлений 312
Декораторы аутентификации 312
Приложение Syndication 314
Класс Feed 314
Определение адреса URL ленты 316
Дополнительные возможности работы с лентами 317
Создание загружаемых файлов 317
Конфигурационные файлы Nagios 318
vCard 319
Значения, разделенные запятыми (CSV) 320
Вывод диаграмм и графиков с помощью библиотеки PyCha 321
Расширение механизма ORM с помощью собственных подклассов Manager 323
Изменение множества объектов, возвращаемых по умолчанию 324
Добавление новых методов в подклассы Manager 325
Расширение системы шаблонов 326
Простые специализированные теги шаблонов 326
Теги включения 330
Специализированные фильтры 333
Более сложные специализированные теги шаблонов 336
Альтернативные системы шаблонов 336
В заключение 338
12. Передовые приемы развертывания Django 339
Создание вспомогательных сценариев 339
Задания cron, выполняющие очистку 340
Импорт/экспорт данных 341
Изменение программного кода самой платформы Django 343
Кэширование 343
Типичный пример кэширования 344
Стратегии кэширования 347
Типы механизмов кэширования 352
Тестирование приложений на платформе Django 356
Основы док тестов 357
Основы модульного тестирования 358
Запуск тестов 358
Тестирование моделей 359
Тестирование всего веб-приложения в целом 361
Тестирование программного кода самой платформы Django 362
В заключение 364
V. Приложения 365
A. Основы командной строки 367
Ввод «команды» в «командную строку» 368
Ключи и аргументы 371
Каналы и перенаправление 373
Переменные окружения 375
Пути 377
В заключение 379
B. Установка и запуск Django 380
Python 380
Mac OS X 381
UNIX/Linux 381
Windows 381
Обновление путей поиска 382
Тестирование 384
Необязательные дополнения 386
Django 388
Официальные выпуски 388
Версия в разработке 388
Установка 388
Тестирование 389
Веб-сервер 389
Встроенный сервер: не для работы в нормальном режиме эксплуатации 390
Стандартный подход: Apache и mod_python 390
Гибкая альтернатива: WSGI 394
Другой подход: flup и FastCGI 395
База данных SQL 396
SQLite 396
PostgreSQL 397
MySQL 398
Oracle 400
Прочие базы данных 400
В заключение 401
C. Инструменты разработки для платформы Django 402
Управление версиями 402
Ствол и ветви 403
Слияние 404
Централизованное управление версиями 404
Децентрализованное управление версиями 405
Управление версиями в вашем проекте 406
Программное обеспечение управления проектами 409
Trac 409
Текстовые редакторы 410
Emacs 410
Vim 411
TextMate 411
Eclipse 411
D. Поиск, оценка и использование приложений на платформе Django 412
Где искать приложения 413
Как оценивать приложения 413
Как пользоваться приложениями 414
Передача собственных приложений 415
E. Django и Google App Engine 416
Назначение платформы App Engine 417
Приложения, опирающиеся исключительно на использование App Engine 417
Ограничения платформы App Engine 418
Проект Google App Engine Helper для Django 418
Получение SDK и Helper 419
Подробнее о Helper 419
Интегрирование App Engine 420
Копирование программного кода App Engine в проект 420
Интегрирование App Engine Helper 421
Перенос приложения на платформу app Engine 422
Опробование 423
Добавление данных 424
Создание нового приложения на платформе Django, использующего возможности app Engine 425
В заключение 426
Ресурсы в Интернете 427
F. Участие в проекте Django 428
Алфавитный указатель 430
Добавить комментарий