Django 4 в примерах
Покупка
Издательство:
ДМК Пресс
Автор:
Меле Антонио
Год издания: 2023
Кол-во страниц: 801
Дополнительно
Вид издания:
Монография
Уровень образования:
Профессиональное образование
ISBN: 978-5-93700-204-4
Артикул: 832704.01.99
Книга охватывает многообразные аспекты создания веб-приложений с по- мощью самого популярного веб-фреймворка Django на языке Python. Изучив четыре проекта разной направленности (приложение для ведения блога и электронной коммерции, социальный веб-сайт, платформа электронного обучения), вы получите хорошее представление о том, как работает Django. Издание предназначено читателям с базовыми знаниями Python, а также программистам, переходящим на Django с других веб-фреймворков. Оно подойдет и тем, кто уже использует Django в своей работе и хочет расширить свои навыки. Для изучения материала необходимы базовый опыт работы с Python и знание HTML и JavaScript.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Антонио Меле 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