Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Django 4 в примерах

Покупка
Артикул: 832704.01.99
Доступ онлайн
2 499 ₽
В корзину
Книга охватывает многообразные аспекты создания веб-приложений с по- мощью самого популярного веб-фреймворка Django на языке Python. Изучив четыре проекта разной направленности (приложение для ведения блога и электронной коммерции, социальный веб-сайт, платформа электронного обучения), вы получите хорошее представление о том, как работает Django. Издание предназначено читателям с базовыми знаниями Python, а также программистам, переходящим на Django с других веб-фреймворков. Оно подойдет и тем, кто уже использует Django в своей работе и хочет расширить свои навыки. Для изучения материала необходимы базовый опыт работы с Python и знание HTML и JavaScript.
Меле, А. Django 4 в примерах / А. Меле. - Москва : ДМК Пресс, 2023. - 801 с. - ISBN 978-5-93700-204-4. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2150534 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Антонио Меле

Django 4 в примерах

Antonio Melé

Django 4  
By Example

Build powerful and reliable Python  
web applications from scratch

BIRMINGHAM—MUMBAI

Антонио Меле

Django 4  
в примерах

Разрабатывайте мощные и надежные  
веб-приложения на Python с нуля

Москва, 2023

УДК 004.04
ББК32.372
М47

МелеА.
М47  Django 4 в примерах / пер. с англ. А. В. Логунова. – М.: ДМК Пресс, 2023. – 
800 с.: ил. 

ISBN978-5-93700-204-4

Книга охватывает многообразные аспекты создания веб-приложений с по
мощью самого популярного веб-фреймворка Django на языке Python. Изучив 
четыре проекта разной направленности (приложение для ведения блога и электронной коммерции, социальный веб-сайт, платформа электронного обучения), 
вы получите хорошее представление о том, как работает Django.
Издание предназначено читателям с базовыми знаниями Python, а также программистам, переходящим на Django с других веб-фреймворков. Оно подойдет 
и тем, кто уже использует Django в своей работе и хочет расширить свои навыки. 
Для изучения материала необходимы базовый опыт работы с Python и знание 
HTML и JavaScript.

УДК 004.04
ББК 32.372

Copyright ©Packt Publishing 2022. First published in the English language under the title 
Django 4 By Example - Fourth Edition – (9781801813051).

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-80181-305-1 (англ.)  
© 2022 Packt Publishing
ISBN 978-5-93700-204-4 (рус.)  
©  Перевод, оформление, издание,  
ДМК Пресс, 2023

Посвящается моей сестре

Содержание

От издательства ....................................................................................................17

Вступительное слово .........................................................................................18

Об авторе .................................................................................................................20

О рецензенте .........................................................................................................21

Предисловие ..........................................................................................................22

Глава 1. Разработка приложения для ведения блога .......................28

Установка языка Python ............................................................................................29
Создание виртуальной среды Python .....................................................................30
Установка веб-фреймворка Django .........................................................................31
Установка Django с по мощью pip ........................................................................31
Новые функциональные возможности Django 4 ...............................................32
Общий обзор веб-фреймворка Django....................................................................33
Главные компоненты веб-фреймворка ..................................................................33
Архитектура Django ...................................................................................................34
Создание первого проекта ........................................................................................35
Применение первоначальных миграций базы данных ...................................36
Запуск и выполнение сервера разработки .........................................................37
Настроечные параметры проекта .......................................................................39
Проекты и приложения .........................................................................................40
Создание приложения...........................................................................................41
Создание моделей данных блога .............................................................................42
Создание модели поста .........................................................................................42
Добавление полей даты/времени ........................................................................44
Определение предустановленного порядка сортировки ................................45
Добавление индекса базы данных ......................................................................46
Активация приложения ........................................................................................47
Добавление поля статуса ......................................................................................47

Содержание

Добавление взаимосвязи многие-к-одному .....................................................50
Создание и применение миграций .....................................................................51
Создание сайта администрирования для моделей ...............................................54
Создание суперпользователя ...............................................................................54
Сайт администрирования ....................................................................................55
Добавление моделей на сайт администрирования ..........................................56
Адаптация внешнего вида моделей под конкретно-прикладную задачу ....58
Работа с наборами запросов QuerySet и менеджерами .......................................60
Создание объектов.................................................................................................61
Обновление объектов ............................................................................................62
Извлечение объектов ............................................................................................63
Применение метода filter() ..............................................................................63
Применение метода exclude() ..........................................................................64
Применение метода order_by() ........................................................................64
Удаление объектов .................................................................................................64
Когда вычисляются наборы запросов QuerySet ................................................65
Создание модельных менеджеров ......................................................................65
Разработка представлений списка и детальной информации ...........................67
Создание представлений списка постов и детальной информации  
о посте .....................................................................................................................67
Применение функции сокращенного доступа get_object_or_404() .................68
Добавление шаблонов URL-адресов представлений ........................................69
Создание шаблонов представлений ........................................................................71
Создание базового шаблона .................................................................................72
Создание шаблона списка постов .......................................................................73
Доступ к приложению ...........................................................................................74
Создание шаблона детальной информации о посте ........................................74
Цикл запроса/ответа ..................................................................................................75
Дополнительные ресурсы .........................................................................................76
Резюме .........................................................................................................................77
Присоединяйтесь к нам на Discord .....................................................................78

Глава 2. Усовершенствование блога за счет продвинутых 
функциональностей ...........................................................................................79

Использование канонических URL-адресов для моделей ...................................80
Создание дружественных для поисковой оптимизации URL-адресов  
постов...........................................................................................................................82
Видоизменение шаблонов URL-адресов ................................................................84
Видоизменение представлений ..............................................................................85
Видоизменение канонического URL-адреса постов .............................................86
Добавление постраничной разбивки ......................................................................87
Добавление постраничной разбивки в представление списка постов .........87
Создание шаблона постраничной разбивки .....................................................88
Обработка ошибок постраничной разбивки .....................................................91
Разработка представлений на основе классов ......................................................94

Содержание

Зачем использовать представления на основе классов ...................................95
Использование представления на основе класса для отображения  
списка постов .........................................................................................................95
Рекомендация постов по электронной почте ........................................................97
Разработка форм с по мощью Django ..................................................................98
Работа с формами в представлениях ..................................................................99
Отправка электронных писем с по мощью Django..........................................101
Отправка электронных писем в представлениях ...........................................106
Прорисовка форм в шаблонах ...........................................................................107
Создание системы комментариев .........................................................................112
Разработка модели комментария .....................................................................112
Добавление комментариев на сайт администрирования .............................114
Создание форм из моделей ................................................................................116
Оперирование формами ModelForm в представлениях ................................116
Создание шаблонов комментарной формы ....................................................119
Добавление комментариев в представление детальной информации 
о посте ...................................................................................................................121
Добавление комментариев в шаблон детальной информации о посте ......122
Дополнительные ресурсы .......................................................................................129
Резюме .......................................................................................................................130

Глава 3. Расширение приложения для ведения блога ...................131

Добавление функциональности тегирования .....................................................132
Извлечение постов по сходству .............................................................................141
Создание конкретно-прикладных шаблонных тегов и фильтров ....................146
Реализация конкретно-прикладных шаблонных тегов .................................147
Создание простого шаблонного тега ................................................................147
Создание шаблонного тега включения ............................................................150
Создание шаблонного тега, возвращающего набор запросов ......................152
Реализация конкретно-прикладных шаблонных фильтров .........................154
Создание шаблонного фильтра для поддержки синтаксиса Markdown ......154
Добавление карты сайта .........................................................................................159
Создание новостных лент для постов блога ........................................................164
Добавление полнотекстового поиска в блог ........................................................171
Установка базы данных PostgreSQL ..................................................................172
Создание базы данных PostgreSQL ...................................................................173
Выгрузка существующих данных ......................................................................174
Переключение базы данных в проекте ............................................................174
Загрузка данных в новую базу данных .............................................................176
Простые операции поиска ..................................................................................177
Поиск по нескольким полям ..............................................................................177
Разработка представления поиска ....................................................................178
Выделение основ слов и ранжирование результатов.....................................182
Выделение основ слов и удаление стоп-слов на разных языках ..................183
Взвешивание запросов .......................................................................................184
Поиск по триграммному сходству.....................................................................185

Содержание

Дополнительные ресурсы .......................................................................................186
Резюме .......................................................................................................................187

Глава 4. Разработка социального веб-сайта ........................................188

Создание проекта социального веб-сайта ...........................................................189
Запуск проекта социального веб-сайта ............................................................189
Использование поставляемого с Django фреймворка аутентификации .........191
Создание представления входа в систему .......................................................192
Использование встроенных в Django представлений аутентификации .....199
Представления входа и выхода ..........................................................................199
Представления смены пароля ............................................................................205
Представление сброса пароля ............................................................................208
Регистрация пользователей и профили пользователей ....................................216
Регистрация пользователя .................................................................................216
Расширение модели пользователя ....................................................................223
Установка библиотеки Pillow и раздача медиафайлов ..................................224
Создание миграций для модели профиля .......................................................225
Использование конкретно-прикладной модели пользователя ...............231
Использование фреймворка сообщений .........................................................231
Разработка конкретно-прикладного бэкенда аутентификации ......................235
Предотвращение использования существующего адреса электронной 
почты .....................................................................................................................238
Дополнительные ресурсы .......................................................................................239
Резюме .......................................................................................................................240

Глава 5. Реализация социальной аутентификации ..........................241

Добавление социальной аутентификации на сайт .............................................242
Обеспечение работы сервера разработки по протоколу HTTPS ...................245
Аутентификация с учетной записью Facebook ................................................248
Аутентификация с учетной записью Twitter ...................................................256
Аутентификация с учетной записью Google....................................................268
Создание профиля пользователей, регистрирующихся посредством 
социальной аутентификации ............................................................................277
Дополнительные ресурсы .......................................................................................279
Резюме .......................................................................................................................280

Глава 6. Распространение контента на веб-сайте ............................281

Создание веб-сайта для управления визуальными закладками ......................282
Разработка модели изображения ......................................................................282
Создание взаимосвязей многие-ко-многим ...................................................284
Регистрация модели изображения на сайте администрирования ..............285
Отправка контента с других сайтов ......................................................................286
Очистка полей формы .........................................................................................287
Установка библиотеки requests ..........................................................................288

Содержание

Переопределение метода save() класса ModelForm ........................................288
Разработка букмарклета с по мощью JavaScript ..............................................293
Создание представления детальной информации об изображениях..............306
Создание миниатюр изображений с по мощью easy-thumbnails ......................309
Добавление асинхронных действий с по мощью JavaScript ...............................312
Загрузка JavaScript в DOM ...................................................................................314
Защита от подделки межсайтовых HTTP-запросов на JavaScript.................315
Выполнение HTTP-запросов с по мощью JavaScript .......................................317
Добавление бесконечной постраничной прокрутки в список изображений .....323
Дополнительные ресурсы .......................................................................................330
Резюме .......................................................................................................................331

Глава 7. Отслеживание действий пользователя ................................332

Разработка системы подписки ...............................................................................333
Формирование взаимосвязей многие-ко-многим с промежуточной 
моделью .................................................................................................................333
Создание представлений списка и детальной информации  
для профилей пользователей ........................................................................336
Добавление действий пользователя по подписке/отписке с по мощью 
JavaScript ...............................................................................................................342
Разработка типового приложения для потока активности ...............................345
Применение фреймворка contenttypes ............................................................346
Добавление обобщенных отношений в модели .............................................347
Игнорирование повторных действий в потоке активности .........................351
Добавление действий пользователя в поток активности ..............................352
Отображение потока активности ......................................................................355
Оптимизация наборов запросов, предусматривающих связанные  
объекты .................................................................................................................355
Применение метода select_related() .............................................................356
Применение метода prefetch_related() .........................................................357
Создание шаблонов действий ............................................................................357
Использование сигналов для денормализации количественных данных ......361
Работа с сигналами ..............................................................................................361
Конфигурационные классы приложений ........................................................364
Использование меню отладочных инструментов Django ..................................366
Установка меню отладочных инструментов Django .......................................367
Панели меню отладочных инструментов Django ...........................................370
Команды меню отладочных инструментов Django ........................................373
Подсчет просмотров изображений с по мощью хранилища Redis....................374
Установка платформы Docker ............................................................................375
Установка хранилища Redis ...............................................................................375
Использование хранилища Redis вместе с Python .........................................377
Хранение просмотров изображений в хранилище Redis ..............................379
Хранение рейтинга в хранилище Redis ............................................................381
Следующие шаги с Redis .....................................................................................384
Дополнительные ресурсы .......................................................................................385
Резюме .......................................................................................................................385

Доступ онлайн
2 499 ₽
В корзину