На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

Django 2.1. Практика создания веб-сайтов на Python

Автор Дронов В.
Название Django 2.1. Практика создания веб-сайтов на Python
Серия Профессиональное программирование
ISBN 978-5-9775-4058-2
Формат 70×100/16
Объем 672
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Введение 17
Веб-фреймворк Django 17
Использованные программные продукты 19
Типографские соглашения 19

ЧАСТЬ I. ВВОДНЫЙ КУРС

21

Глава 1. Основные понятия Django. Вывод данных

23
1.1. Установка фреймворка 23
1.2. Проект Django 24
1.3. Отладочный веб-сервер Django 25
1.4. Приложения 27
1.5. Контроллеры 28
1.6. Маршруты и маршрутизатор 30
1.7. Модели 33
1.8. Миграции 35
1.9. Консоль Django 37
1.10. Работа с моделями 38
1.11. Шаблоны 42
1.12. Рендеринг шаблонов. Сокращения 43
1.13. Административный веб-сайт Django 45
1.14. Параметры полей и моделей 50
1.15. Редактор модели 51

Глава 2. Связи. Ввод данных. Статические файлы

53
2.1. Связи между моделями 53
2.2. Строковое представление модели 55
2.3. URL-параметры и параметризованные запросы 57
2.4. Обратное разрешение интернет-адресов 61
2.5. Формы, связанные с моделями 62
2.6. Контроллеры-классы 62
2.7. Наследование шаблонов 66
2.8. Статические файлы 69

ЧАСТЬ II. БАЗОВЫЕ ИНСТРУМЕНТЫ DJANGO

73

Глава 3. Создание и настройка проекта

75
3.1. Подготовительные действия 75
3.2. Создание проекта Django 77
3.3. Настройки проекта 77
3.3.1. Основные настройки 77
3.3.2. Параметры баз данных 78
3.3.3. Список зарегистрированных приложений 80
3.3.4. Список зарегистрированных посредников 81
3.3.5. Языковые настройки 82
3.4. Создание, настройка и регистрация приложений 85
3.4.1. Создание приложений 85
3.4.2. Настройка приложений 86
3.4.3. Регистрация приложения в проекте 86
3.5. Отладочный веб-сервер Django 87

Глава 4. Модели: базовые инструменты

89
4.1. Введение в модели 89
4.2. Объявление моделей 90
4.3. Объявление полей модели 91
4.3.1. Параметры, поддерживаемые полями всех типов 91
4.3.2. Классы полей моделей 94
4.4. Создание связей между моделями 97
4.4.1. Связь «один-со-многими» 97
4.4.2. Связь «один-с-одним» 100
4.4.3. Связь «многие-со-многими» 101
4.5. Параметры самой модели 103
4.6. Интернет-адрес модели и его формирование 106
4.7. Методы модели 107
4.8. Валидация модели. Валидаторы 109
4.8.1. Стандартные валидаторы Django 109
4.8.2. Вывод собственных сообщений об ошибках 113
4.8.3. Написание своих валидаторов 114
4.8.4. Валидация модели 115

Глава 5. Миграции

117
5.1. Формирование миграций 117
5.2. Файлы миграций 118
5.3. Выполнение миграций 119
5.4. Слияние миграций 119
5.5. Вывод списка миграций 120
5.6. Отмена всех миграций 121

Глава 6. Запись данных

122
6.1. Правка записей 122
6.2. Создание записей 123
6.3. Некоторые замечания о методе save() 124
6.4. Удаление записей 125
6.5. Особенности обработки связанных записей 125
6.5.1. Особенности обработки связи «один-со-многими» 126
6.5.2. Особенности обработки связи «один-с-одним» 127
6.5.3. Особенности обработки связи «многие-со-многими» 128
6.6. Произвольное переупорядочивание записей 129
6.7. Массовая запись данных 130
6.8. Выполнение валидации модели 131

Глава 7. Выборка данных

133
7.1. Извлечение значений из полей записи 133
7.2. Доступ к связанным записям 134
7.3. Выборка записей 135
7.3.1. Выборка всех записей 135
7.3.2. Извлечение одной записи 136
7.3.3. Получение количества записей в наборе 137
7.3.4. Поиск записи 138
7.3.5. Фильтрация записей 139
7.3.6. Написание условий фильтрации 140
7.3.7. Фильтрация по значениям полей связанных записей 142
7.3.8. Сравнение со значениями других полей 144
7.3.9. Сложные условия фильтрации 144
7.3.10. Выборка уникальных записей 145
7.3.11. Выборка указанного количества записей 145
7.4. Сортировка записей 146
7.5. Агрегатные вычисления 147
7.5.1. Вычисления по всем записям модели 147
7.5.2. Вычисления по группам записей 148
7.5.3. Агрегатные функции 149
7.6. Вычисляемые поля 151
7.6.1. Простейшие вычисляемые поля 152
7.6.2. Функции СУБД 153
7.6.3. Условные выражения СУБД 157
7.6.4. Вложенные запросы 159
7.7. Объединение наборов записей 160
7.8. Извлечение значений только из заданных полей 161
7.9. Получение значения из полей со списком 163

Глава 8. Маршрутизация

164
8.1. Как работает маршрутизатор 164
8.2. Списки маршрутов уровня проекта и уровня приложения 165
8.3. Объявление маршрутов 166
8.4. Передача данных в контроллеры 167
8.5. Именованные маршруты 168
8.6. Пространства имен. Корневое приложение 169
8.7. Указание шаблонных путей в виде регулярных выражений 170

Глава 9. Контроллеры-функции

171
9.1. Введение в контроллеры-функции 171
9.2. Как пишутся контроллеры-функции 171
9.2.1. Контроллеры, выполняющие одну задачу 172
9.2.2. Контроллеры, выполняющие несколько задач 173
9.3. Формирование ответа 174
9.3.1. Низкоуровневые средства для формирования ответа 174
9.3.2. Формирование ответа на основе шаблона 175
9.3.3. Класс TemplateResponse: отложенный рендеринг шаблона 177
9.4. Получение сведений о запросе 178
9.5. Перенаправление 180
9.6. Формирование интернет-адресов путем обратного разрешения 181
9.7. Выдача сообщений об ошибках и обработка особых ситуаций 182
9.8. Специальные ответы 183
9.8.1. Потоковый ответ 183
9.8.2. Отправка файлов 184
9.8.3. Отправка данных в формате JSON 185
9.9. Сокращения Django 185
9.10. Дополнительные настройки контроллеров 187

Глава 10. Контроллеры-классы

188
10.1. Введение в контроллеры-классы 188
10.2. Базовые контроллеры-классы 189
10.2.1. Контроллер View: диспетчеризация по HTTP-методу 189
10.2.2. Примесь ContextMixin: создание контекста шаблона 190
10.2.3. Примесь TemplateResponseMixin: рендеринг шаблона 190
10.2.4. Контроллер TemplateView: все вместе 191
10.3. Классы, выводящие сведения о выбранной записи 191
10.3.1. Примесь SingleObjectMixin: извлечение записи из модели 192
10.3.2. Примесь SingleObjectTemplateResponseMixin: рендеринг шаблона на основе найденной записи 193
10.3.3. Контроллер DetailView: все вместе 194
10.4. Классы, выводящие наборы записей 195
10.4.1. Примесь MultipleObjectMixin: извлечение набора записей из модели 195
10.4.2. Примесь MultipleObjectTemplateResponseMixin: рендеринг шаблона на основе набора записей 198
10.4.3. Контроллер ListView: все вместе 198
10.5. Классы, работающие с формами 199
10.5.1. Классы для вывода и валидации форм 200
10.5.1.1. Примесь FormMixin: создание формы 200
10.5.1.2. Контроллер ProcessFormView: вывод и обработка формы 201
10.5.1.3. Контроллер-класс FormView: создание, вывод и обработка формы 201
10.5.2. Классы для работы с записями 203
10.5.2.1. Примесь ModelFormMixin: создание формы, связанной с моделью 203
10.5.2.2. Контроллер CreateView: создание новой записи 204
10.5.2.3. Контроллер UpdateView: исправление записи 205
10.5.2.4. Примесь DeletionMixin: удаление записи 206
10.5.2.5. Контроллер DeleteView: удаление записи с подтверждением 206
10.6. Классы для вывода хронологических списков 207
10.6.1. Вывод последних записей 207
10.6.1.1. Примесь DateMixin: фильтрация записей по дате 207
10.6.1.2. Контроллер BaseDateListView: базовый класс 208
10.6.1.3. Контроллер ArchiveIndexView: вывод последних записей 209
10.6.2. Вывод записей по годам 210
10.6.2.1. Примесь YearMixin: извлечение года 210
10.6.2.2. Контроллер YearArchiveView: вывод записей за год 210
10.6.3. Вывод записей по месяцам 211
10.6.3.1. Примесь MonthMixin: извлечение месяца 211
10.6.3.2. Контроллер MonthArchiveView: вывод записей за месяц 212
10.6.4. Вывод записей по неделям 212
10.6.4.1. Примесь WeekMixin: извлечение номера недели 212
10.6.4.2. Контроллер WeekArchiveView: вывод записей за неделю 213
10.6.5. Вывод записей по дням 214
10.6.5.1. Примесь DayMixin: извлечение заданного числа 214
10.6.5.2. Контроллер DayArchiveView: вывод записей за день 214
10.6.6. Контроллер TodayArchiveView: вывод записей за текущее число 215
10.6.7. Контроллер DateDetailView: вывод одной записи за указанное число 215
10.7. Контроллер RedirectView: перенаправление 216
10.8. Контроллеры-классы смешанной функциональности 217

Глава 11. Шаблоны и статические файлы: базовые инструменты

220
11.1. Настройки проекта, касающиеся шаблонов 220
11.2. Вывод данных. Директивы 223
11.3. Теги шаблонизатора 224
11.4. Фильтры 231
11.5. Наследование шаблонов 238
11.6. Обработка статических файлов 239
11.6.1. Настройка подсистемы статических файлов 240
11.6.2. Обслуживание статических файлов 241
11.6.3. Формирование интернет-адресов статических файлов 241

Глава 12. Пагинатор

243
12.1. Класс Paginator: сам пагинатор. Создание пагинатора 243
12.2. Класс Page: часть пагинатора. Вывод пагинатора 245

Глава 13. Формы, связанные с моделями

247
13.1. Создание форм, связанных с моделями 247
13.1.1. Создание форм посредством фабрики классов 247
13.1.2. Создание форм путем быстрого объявления 249
13.1.3. Создание форм путем полного объявления 250
13.1.3.1. Как выполняется полное объявление 250
13.1.3.2. Параметры, поддерживаемые всеми типами полей 252
13.1.3.3. Доступные классы полей форм 253
13.1.3.4. Классы полей форм, применяемые по умолчанию 257
13.1.4. Задание элементов управления 258
13.1.4.1. Классы элементов управления 258
13.1.4.2. Элементы управления, применяемые по умолчанию 261
13.2. Обработка форм 262
13.2.1. Добавление записи посредством формы 262
13.2.1.1. Создание формы для добавления записи 262
13.2.1.2. Повторное создание формы 263
13.2.1.3. Валидация данных, занесенных в форму 263
13.2.1.4. Сохранение данных, занесенных в форму 264
13.2.1.5. Доступ к данным, занесенным в форму 265
13.2.2. Правка записи посредством формы 265
13.2.3. Некоторые соображения касательно удаления записей 267
13.3. Вывод форм на экран 267
13.3.1. Быстрый вывод форм 267
13.3.2. Расширенный вывод форм 269
13.4. Валидация в формах 272
13.4.1. Валидация полей формы 272
13.4.1.1. Валидация с применением валидаторов 272
13.4.1.2. Валидация путем переопределения методов формы 272
13.4.2. Валидация формы 273

Глава 14. Наборы форм, связанные с моделями

274
14.1. Создание наборов форм, связанных с моделями 274
14.2. Обработка наборов форм, связанных с моделями 277
14.2.1. Создание набора форм, связанного с моделью 277
14.2.2. Повторное создание набора форм 278
14.2.3. Валидация и сохранение набора форм 278
14.2.4. Доступ к данным, занесенным в набор форм 279
14.2.5. Реализация переупорядочивания записей 280
14.3. Вывод наборов форм на экран 281
14.3.1. Быстрый вывод наборов форм 282
14.3.2. Расширенный вывод наборов форм 283
14.4. Валидация в наборах форм 284
14.5. Встроенные наборы форм 285
14.5.1. Создание встроенных наборов форм 285
14.5.2. Обработка встроенных наборов форм 285

Глава 15. Разграничение доступа: базовые инструменты

287
15.1. Как работает подсистема разграничения доступа 287
15.2. Подготовка подсистемы разграничения доступа 288
15.2.1. Настройка подсистемы разграничения доступа 288
15.2.2. Создание суперпользователя 289
15.2.3. Смена пароля пользователя 290
15.3. Работа со списками пользователей и групп 290
15.3.1. Список пользователей 290
15.3.2. Группы пользователей. Список групп 292
15.4. Аутентификация и служебные процедуры 293
15.4.1. Контроллер LoginView: вход на сайт 293
15.4.2. Контроллер LogoutView: выход с сайта 295
15.4.3. Контроллер PasswordChangeView: смена пароля 297
15.4.4. Контроллер PasswordChangeDoneView: уведомление об успешной смене пароля 297
15.4.5. Контроллер PasswordResetView: отправка письма для сброса пароля 298
15.4.6. Контроллер PasswordResetDoneView: уведомление об отправке письма для сброса пароля 300
15.4.7. Контроллер PasswordResetConfirmView: собственно сброс пароля 301
15.4.8. Контроллер PasswordResetCompleteView: уведомление об успешном сбросе пароля 302
15.5. Получение сведений о текущем пользователе 303
15.6. Авторизация 305
15.6.1. Авторизация в контроллерах 305
15.6.1.1. Императивный подход к авторизации 305
15.6.1.2. Декларативная авторизация в контроллерах-функциях 306
15.6.1.3. Декларативная авторизация в контроллерах-классах 308
15.6.2. Авторизация в шаблонах 310

ЧАСТЬ III. РАСШИРЕННЫЕ ИНСТРУМЕНТЫ И ДОПОЛНИТЕЛЬНЫЕ БИБЛИОТЕКИ

311

Глава 16. Модели: расширенные инструменты

313
16.1. Управление выборкой полей 313
16.2. Связи «многие-со-многими» с дополнительными данными 317
16.3. Полиморфные связи 319
16.4. Наследование моделей 323
16.4.1. Прямое наследование моделей 323
16.4.2. Абстрактные модели 325
16.4.3. Прокси-модели 326
16.5. Создание своих диспетчеров записей 327
16.5.1. Создание диспетчеров записей 327
16.5.2. Создание диспетчеров обратной связи 329
16.6. Создание своих наборов записей 330
16.7. Управление транзакциями 333
16.7.1. Всё или ничего: два высокоуровневых режима управления транзакциями 333
16.7.1.1. Ничего: режим по умолчанию 333
16.7.1.2. Всё: режим для максималистов 334
16.7.2. Управление транзакциями на низком уровне 335
16.7.2.1. Включение режима «всё» на уровне контроллера 335
16.7.2.2. Обработка подтверждения транзакции 336
16.7.2.3. Выключение режима «всё» для контроллера 336
16.7.2.4. Управление транзакциями вручную 336

Глава 17. Формы и наборы форм: расширенные инструменты и дополнительная библиотека

338
17.1. Формы, не связанные с моделями 338
17.2. Наборы форм, не связанные с моделями 339
17.3. Расширенные средства для вывода форм и наборов форм 341
17.3.1. Указание CSS-стилей для форм 341
17.3.2. Настройка выводимых форм 341
17.3.3. Настройка наборов форм 342
17.4. Библиотека Django Simple Captcha: поддержка CAPTCHA 343
17.4.1. Установка Django Simple Captcha 343
17.4.2. Использование Django Simple Captcha 344
17.4.3. Настройка Django Simple Captcha 345
17.4.4. Дополнительные команды captcha_clean и captcha_create_pool 346
17.5. Дополнительные настройки проекта, имеющие отношение к формам 346

Глава 18. Шаблоны: расширенные инструменты и дополнительные библиотеки

348
18.1. Библиотека django-precise-bbcode: поддержка BBCode 348
18.1.1. Установка django-precise-bbcode 349
18.1.2. Поддерживаемые BBCode-теги 349
18.1.3. Обработка BBCode 350
18.1.3.1. Обработка BBCode в процессе вывода 350
18.1.3.2. Хранение BBCode в модели 351
18.1.4. Создание дополнительных BBCode-тегов 352
18.1.5. Создание смайликов 354
18.1.6. Настройка django-precise-bbcode 355
18.2. Библиотека django-bootstrap4: интеграция с Bootstrap 356
18.2.1. Установка django-bootstrap4 356
18.2.2. Использование django-bootstrap4 357
18.2.3. Настройка django-bootstrap4 362
18.3. Написание своих фильтров и тегов 364
18.3.1. Организация исходного кода 364
18.3.2. Написание фильтров 364
18.3.2.1. Написание и использование простейших фильтров 364
18.3.2.2. Управление заменой недопустимых знаков HTML 366
18.3.3. Написание тегов 367
18.3.3.1. Написание тегов, выводящих элементарные значения 368
18.3.3.2. Написание шаблонных тегов 369
18.3.4. Регистрация фильтров и тегов 370
18.4. Переопределение шаблонов 372

Глава 19. Обработка выгруженных файлов

374
19.1. Подготовка подсистемы обработки выгруженных файлов 374
19.1.1. Настройка подсистемы обработки выгруженных файлов 374
19.1.2. Указание маршрута для выгруженных файлов 376
19.2. Хранение файлов в моделях 376
19.2.1. Типы полей модели, предназначенные для хранения файлов 377
19.2.2. Поля, валидаторы и элементы управления форм, служащие для указания файлов 379
19.2.3. Обработка выгруженных файлов 380
19.2.4. Вывод выгруженных файлов 382
19.2.5. Удаление выгруженного файла 383
19.3. Хранение путей к файлам в моделях 383
19.4. Низкоуровневые средства для сохранения выгруженных файлов 384
19.4.1. Класс UploadedFile: выгруженный файл. Сохранение выгруженных файлов 384
19.4.2. Вывод выгруженных файлов низкоуровневыми средствами 386
19.5. Библиотека django-cleanup: автоматическое удаление ненужных файлов 387
19.6. Библиотека easy-thumbnails: вывод миниатюр 388
19.6.1. Установка easy-thumbnails 388
19.6.2. Настройка easy-thumbnails 389
19.6.2.1. Пресеты миниатюр 389
19.6.2.2. Остальные параметры библиотеки 391
19.6.3. Вывод миниатюр в шаблонах 393
19.6.4. Хранение миниатюр в моделях 394
19.6.5. Дополнительная команда thumbnail_cleanup 395

Глава 20. Разграничение доступа: расширенные инструменты и дополнительная библиотека

396
20.1. Настройки проекта, касающиеся разграничения доступа 396
20.2. Работа с пользователями 397
20.2.1. Создание пользователей 397
20.2.2. Работа с паролями 397
20.3. Аутентификация и выход с сайта 398
20.4. Валидация паролей 399
20.4.1. Стандартные валидаторы паролей 399
20.4.2. Написание своих валидаторов паролей 401
20.4.3. Выполнение валидации паролей 402
20.5. Библиотека Python Social Auth: регистрация и вход через социальные сети 403
20.5.1. Создание приложения «ВКонтакте» 403
20.5.2. Установка и настройка Python Social Auth 405
20.5.3. Использование Python Social Auth 406
20.6. Указание своей модели пользователя 406
20.7. Создание своих прав пользователя 408

Глава 21. Посредники и обработчики контекста

409
21.1. Посредники 409
21.1.1. Стандартные посредники 409
21.1.2. Порядок выполнения посредников 410
21.1.3. Написание своих посредников 411
21.1.3.1. Посредники-функции 411
21.1.3.2. Посредники-классы 412
21.2. Обработчики контекста 414

Глава 22. Cookie, сессии, всплывающие сообщения и подписывание данных

416
22.1. Cookie 416
22.2. Сессии 418
22.2.1. Настройка сессий 419
22.2.2. Использование сессий 421
22.2.3. Дополнительная команда clearsessions 423
22.3. Всплывающие сообщения 423
22.3.1. Настройка всплывающих сообщений 423
22.3.2. Уровни всплывающих сообщений 424
22.3.3. Создание всплывающих сообщений 425
22.3.4. Вывод всплывающих сообщений 426
22.3.5. Объявление своих уровней всплывающих сообщений 428
22.4. Подписывание данных 428

Глава 23. Сигналы

431
23.1. Обработка сигналов 431
23.2. Встроенные сигналы Django 433
23.3. Объявление своих сигналов 437

Глава 24. Отправка электронных писем

439
24.1. Настройка подсистемы отправки электронных писем 439
24.2. Низкоуровневые инструменты для отправки писем 441
24.2.1. Класс EmailMessage: обычное электронное письмо 441
24.2.2. Формирование писем на основе шаблонов 443
24.2.3. Использование соединений. Массовая рассылка писем 443
24.2.4. Класс EmailMultiAlternatives: электронное письмо, состоящее из нескольких частей 444
24.3. Высокоуровневые инструменты для отправки писем 445
24.3.1. Отправка писем по произвольным адресам 445
24.3.2. Отправка писем зарегистрированным пользователям 446
24.3.3. Отправка писем администраторам и редакторам сайта 447

Глава 25. Кэширование

449
25.1. Кэширование на стороне сервера 449
25.1.1. Подготовка подсистемы кэширования на стороне сервера 449
25.1.1.1. Настройка подсистемы кэширования на стороне сервера 450
25.1.1.2. Создание таблицы для хранения кэша 452
25.1.2. Высокоуровневые средства кэширования 452
25.1.2.1. Кэширование всего веб-сайта 453
25.1.2.2. Кэширование на уровне отдельных контроллеров 454
25.1.2.3. Управление кэшированием 455
25.1.3. Низкоуровневые средства кэширования 456
25.1.3.1. Кэширование фрагментов веб-страниц 456
25.1.3.2. Кэширование произвольных значений 458
25.2. Кэширование на стороне клиента 461
25.2.1. Автоматическая обработка заголовков 461
25.2.2. Условная обработка запросов 462
25.2.3. Прямое указание параметров кэширования 463
25.2.4. Запрет кэширования 464

Глава 26. Административный веб-сайт Django

465
26.1. Подготовка административного веб-сайта к работе 465
26.2. Регистрация моделей на административном веб-сайте 466
26.3. Редакторы моделей 467
26.3.1. Параметры списка записей 467
26.3.1.1. Параметры списка записей: состав выводимого списка 467
26.3.1.2. Параметры списка записей: фильтрация и сортировка 471
26.3.1.3. Параметры списка записей: прочие 475
26.3.2. Параметры страниц добавления и правки записей 476
26.3.2.1. Параметры страниц добавления и правки записей: набор выводимых полей 476
26.3.2.2. Параметры страниц добавления и правки записей: элементы управления 480
26.3.2.3. Параметры страниц добавления и правки записей: прочие 482
26.3.3. Регистрация редакторов на административном веб-сайте 483
26.4. Встроенные редакторы 484
26.4.1. Объявление встроенного редактора 484
26.4.2. Параметры встроенного редактора 485
26.4.3. Регистрация встроенного редактора 487
26.5. Действия 487

Глава 27. Разработка веб-служб REST. Библиотека Django REST framework

490
27.1. Установка и подготовка к работе Django REST framework 491
27.2. Введение в Django REST framework. Вывод данных 492
27.2.1. Сериализаторы 492
27.2.2. Веб-представление JSON 494
27.2.3. Вывод данных на стороне клиента 496
27.2.4. Первый принцип REST: идентификация ресурса по интернет-адресу 498
27.3. Ввод и правка данных 501
27.3.1. Второй принцип REST: идентификация действия по HTTP-методу 501
27.3.2. Парсеры веб-форм 506
27.4. Контроллеры-классы Django REST framework 507
27.4.1. Контроллер-класс низкого уровня 507
27.4.2. Контроллеры-классы высокого уровня: комбинированные и простые 508
27.5. Метаконтроллеры 509
27.6. Разграничение доступа 511
27.6.1. Третий принцип REST: данные клиента хранятся на стороне клиента 511
27.6.2. Классы разграничения доступа 512

Глава 28. Средства диагностики и отладки

514
28.1. Средства диагностики 514
28.1.1. Настройка средств диагностики 514
28.1.2. Объект сообщения 515
28.1.3. Форматировщики 516
28.1.4. Фильтры 517
28.1.5. Обработчики 518
28.1.6. Регистраторы 523
28.1.7. Пример настройки диагностических средств 525
28.2. Средства отладки 527
28.2.1. Веб-страница сообщения об ошибке 527
28.2.2. Отключение кэширования статических файлов 529

Глава 29. Публикация готового веб-сайта

531
29.1. Подготовка веб-сайта к публикации 531
29.1.1. Веб-страницы с сообщениями об ошибках и их шаблоны 531
29.1.2. Указание настроек эксплуатационного режима 533
29.1.3. Подготовка статических файлов 534
29.1.4. Удаление ненужных данных 536
29.1.5. Окончательная проверка веб-сайта 536
29.2. Публикация веб-сайта с использованием веб-сервера Apache 537
29.2.1. Подготовка платформы для публикации 537
29.2.2. Конфигурирование веб-сайта 539
29.2.3. Особенности публикации веб-сайта, работающего по протоколу HTTPS 541

ЧАСТЬ IV. ПРАКТИЧЕСКОЕ ЗАНЯТИЕ: РАЗРАБОТКА ВЕБ-САЙТА

543

Глава 30. Дизайн. Вспомогательные веб-страницы

545
30.1. План веб-сайта 545
30.2. Подготовка проекта и приложения main 546
30.2.1. Создание и настройка проекта 546
30.2.2. Создание и настройка приложения main 547
30.3. Базовый шаблон 547
30.4. Главная веб-страница 553
30.5. Вспомогательные веб-страницы 556

Глава 31. Работа с пользователями и разграничение доступа

558
31.1. Модель пользователя 558
31.2. Основные веб-страницы: входа, профиля и выхода 560
31.2.1. Веб-страница входа 560
31.2.2. Веб-страница пользовательского профиля 562
31.2.3. Веб-страница выхода 564
31.3. Веб-страницы правки личных данных пользователя 565
31.3.1. Веб-страница правки основных сведений 565
31.3.2. Веб-страница правки пароля 568
31.4. Веб-страницы регистрации и активации пользователей 569
31.4.1. Веб-страницы регистрации нового пользователя 569
31.4.1.1. Форма для занесения сведений о новом пользователе 569
31.4.1.2. Средства для регистрации пользователя 571
31.4.1.3. Средства для отправки писем с требованиями активации 573
31.4.2. Веб-страницы активации пользователя 575
31.5. Веб-страница удаления пользователя 577
31.6. Инструменты для администрирования пользователей 579

Глава 32. Рубрики

582
32.1. Модели рубрик 582
32.1.1. Базовая модель рубрик 582
32.1.2. Модель надрубрик 583
32.1.3. Модель подрубрик 584
32.2. Инструменты для администрирования рубрик 585
32.3. Вывод списка рубрик в панели навигации 587

Глава 33. Объявления

590
33.1. Подготовка к обработке выгруженных файлов 590
33.2. Модели объявлений и дополнительных иллюстраций 591
33.2.1. Модель самих объявлений 592
33.2.2. Модель дополнительных иллюстраций 594
33.2.3. Реализация удаления объявлений в модели пользователя 594
33.3. Инструменты для администрирования объявлений 595
33.4. Вывод объявлений 596
33.4.1. Вывод списка объявлений 596
33.4.1.1. Форма поиска и контроллер списка объявлений 596
33.4.1.2. Реализация корректного возврата 598
33.4.1.3. Шаблон страницы списка объявлений 599
33.4.2. Вывод сведений о выбранном объявлении 602
33.4.3. Вывод последних 10 объявлений на главной веб-странице 606
33.5. Работа с объявлениями 607
33.5.1. Вывод объявлений, оставленных текущим пользователем 607
33.5.2. Добавление, правка и удаление объявлений 608

Глава 34. Комментарии

612
34.1. Подготовка к выводу CAPTCHA 612
34.2. Модель комментария 613
34.3. Вывод и добавление комментариев 614
34.4. Отправка уведомлений о появлении новых комментариев 617

Глава 35. Веб-служба REST

619
35.1. Веб-служба 619
35.1.1. Подготовка к разработке веб-службы 619
35.1.2. Список объявлений 620
35.1.3. Сведения о выбранном объявлении 621
35.1.4. Вывод и добавление комментариев 622
35.2. Тестовый клиентский веб-сайт 624
35.2.1. Подготовка к разработке тестового веб-сайта 624
35.2.2. Метамодули. Метамодуль приложения AppModule. Маршрутизация в Angular 626
35.2.3. Компоненты. Компонент приложения AppComponent. Стартовая веб-страница 631
35.2.4. Службы. Служба BbService. Внедрение зависимостей 633
35.2.5. Компонент списка объявлений BbListComponent. Директивы. Фильтры. Связывание данных 637
35.2.6. Компонент сведений об объявлении BbDetailComponent. Двустороннее связывание данных 640
   
Заключение 645
Приложение. Описание электронного архива 647
Предметный указатель 649


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2019 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.