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

Оглавление⌄
От издательства....19 Вступительное слово....20 Об авторе....22 О рецензенте....23 Предисловие....24 Глава 1. Разработка приложения для ведения блога....30 Установка языка Python....31 Создание виртуальной среды Python....32 Установка веб-фреймворка Django....33 Установка Django с помощью pip....33 Новые функциональные возможности Django 4....34 Главные компоненты веб-фреймворка....35 Общий обзор веб-фреймворка Django....35 Архитектура Django....36 Создание первого проекта....37 Применение первоначальных миграций базы данных....38 Запуск и выполнение сервера разработки....39 Настроечные параметры проекта....41 Проекты и приложения....42 Создание приложения....43 Создание моделей данных блога....44 Создание модели поста....44 Добавление полей даты/времени....46 Определение предустановленного порядка сортировки....47 Добавление индекса базы данных....48 Активация приложения....49 Добавление поля статуса....49 Добавление взаимосвязи многие-к-одному....52 Создание и применение миграций....53 Создание сайта администрирования для моделей....56 Создание суперпользователя....56 Сайт администрирования....57 Добавление моделей на сайт администрирования....58 Адаптация внешнего вида моделей под конкретно-прикладную задачу....60 Работа с наборами запросов QuerySet и менеджерами....62 Создание объектов....63 Обновление объектов....64 Извлечение объектов....65 Применение метода filter()....65 Применение метода exclude()....66 Применение метода order_by()....66 Удаление объектов....66 Когда вычисляются наборы запросов QuerySet....67 Создание модельных менеджеров....67 Разработка представлений списка и детальной информации....69 Создание представлений списка постов и детальной информации о посте....69 Применение функции сокращенного доступа get_object_or_404()....70 Добавление шаблонов URL-адресов представлений....71 Создание шаблонов представлений....73 Создание базового шаблона....74 Создание шаблона списка постов....75 Доступ к приложению....76 Создание шаблона детальной информации о посте....76 Цикл запроса/ответа....77 Дополнительные ресурсы....78 Резюме....79 Присоединяйтесь к нам на Discord....80 Глава 2. Усовершенствование блога за счет продвинутых функциональностей....81 Использование канонических URL-адресов для моделей....82 Создание дружественных для поисковой оптимизации URL-адресов постов....84 Видоизменение шаблонов URL-адресов....86 Видоизменение представлений....87 Видоизменение канонического URL-адреса постов....88 Добавление постраничной разбивки....89 Добавление постраничной разбивки в представление списка постов....89 Создание шаблона постраничной разбивки....90 Обработка ошибок постраничной разбивки....93 Разработка представлений на основе классов....96 Зачем использовать представления на основе классов....97 Использование представления на основе класса для отображения списка постов....97 Рекомендация постов по электронной почте....99 Разработка форм с помощью Django....100 Работа с формами в представлениях....101 Отправка электронных писем с помощью Django....103 Отправка электронных писем в представлениях....108 Прорисовка форм в шаблонах....109 Создание системы комментариев....114 Разработка модели комментария....114 Добавление комментариев на сайт администрирования....116 Оперирование формами ModelForm в представлениях....118 Создание форм из моделей....118 Создание шаблонов комментарной формы....121 Добавление комментариев в представление детальной информации о посте....123 Добавление комментариев в шаблон детальной информации о посте....124 Дополнительные ресурсы....131 Резюме....132 Глава 3. Расширение приложения для ведения блога....133 Добавление функциональности тегирования....134 Извлечение постов по сходству....143 Создание конкретно-прикладных шаблонных тегов и фильтров....148 Реализация конкретно-прикладных шаблонных тегов....149 Создание простого шаблонного тега....149 Создание шаблонного тега включения....152 Создание шаблонного тега, возвращающего набор запросов....154 Реализация конкретно-прикладных шаблонных фильтров....156 Создание шаблонного фильтра для поддержки синтаксиса Markdown....156 Добавление карты сайта....161 Создание новостных лент для постов блога....166 Добавление полнотекстового поиска в блог....173 Установка базы данных PostgreSQL....174 Создание базы данных PostgreSQL....175 Выгрузка существующих данных....176 Переключение базы данных в проекте....176 Загрузка данных в новую базу данных....178 Поиск по нескольким полям....179 Простые операции поиска....179 Разработка представления поиска....180 Выделение основ слов и ранжирование результатов....184 Выделение основ слов и удаление стоп-слов на разных языках....185 Взвешивание запросов....186 Поиск по триграммному сходству....187 Дополнительные ресурсы....188 Резюме....189 Глава 4. Разработка социального веб-сайта....190 Создание проекта социального веб-сайта....191 Запуск проекта социального веб-сайта....191 Использование поставляемого с Django фреймворка аутентификации....193 Создание представления входа в систему....194 Использование встроенных в Django представлений аутентификации....201 Представления входа и выхода....201 Представления смены пароля....207 Представление сброса пароля....210 Регистрация пользователей и профили пользователей....218 Регистрация пользователя....218 Расширение модели пользователя....225 Установка библиотеки Pillow и раздача медиафайлов....226 Создание миграций для модели профиля....227 Использование конкретно-прикладной модели пользователя....233 Использование фреймворка сообщений....233 Разработка конкретно-прикладного бэкенда аутентификации....237 Предотвращение использования существующего адреса электронной почты....240 Дополнительные ресурсы....241 Резюме....242 Глава 5. Реализация социальной аутентификации....243 Добавление социальной аутентификации на сайт....244 Обеспечение работы сервера разработки по протоколу HTTPS....247 Аутентификация с учетной записью Facebook....250 Аутентификация с учетной записью Twitter....258 Аутентификация с учетной записью Google....270 Создание профиля пользователей, регистрирующихся посредством социальной аутентификации....279 Дополнительные ресурсы....281 Резюме....282 Глава 6. Распространение контента на веб-сайте....283 Создание веб-сайта для управления визуальными закладками....284 Разработка модели изображения....284 Создание взаимосвязей многие-ко-многим....286 Регистрация модели изображения на сайте администрирования....287 Отправка контента с других сайтов....288 Очистка полей формы....289 Переопределение метода save() класса ModelForm....290 Установка библиотеки requests....290 Разработка букмарклета с помощью JavaScript....295 Создание представления детальной информации об изображениях....308 Создание миниатюр изображений с помощью easy-thumbnails....311 Добавление асинхронных действий с помощью JavaScript....314 Загрузка JavaScript в DOM....316 Защита от подделки межсайтовых HTTP-запросов на JavaScript....317 Выполнение HTTP-запросов с помощью JavaScript....319 Добавление бесконечной постраничной прокрутки в список изображений....325 Дополнительные ресурсы....332 Резюме....333 Глава 7. Отслеживание действий пользователя....334 Разработка системы подписки....335 Формирование взаимосвязей многие-ко-многим с промежуточной моделью....335 Создание представлений списка и детальной информации для профилей пользователей....338 Добавление действий пользователя по подписке/отписке с помощью JavaScript....344 Разработка типового приложения для потока активности....347 Применение фреймворка contenttypes....348 Добавление обобщенных отношений в модели....349 Игнорирование повторных действий в потоке активности....353 Добавление действий пользователя в поток активности....354 Оптимизация наборов запросов, предусматривающих связанные объекты....357 Применение метода select_related()....358 Применение метода prefetch_related()....359 Отображение потока активности....357 Создание шаблонов действий....359 Использование сигналов для денормализации количественных данных....363 Работа с сигналами....363 Конфигурационные классы приложений....366 Использование меню отладочных инструментов Django....368 Установка меню отладочных инструментов Django....369 Панели меню отладочных инструментов Django....372 Команды меню отладочных инструментов Django....375 Подсчет просмотров изображений с помощью хранилища Redis....376 Установка платформы Docker....377 Установка хранилища Redis....377 Использование хранилища Redis вместе с Python....379 Хранение просмотров изображений в хранилище Redis....381 Хранение рейтинга в хранилище Redis....383 Следующие шаги с Redis....386 Дополнительные ресурсы....387 Резюме....387 Глава 8. Разработка интернет-магазина....389 Создание проекта интернет-магазина....390 Создание моделей каталога товаров....391 Регистрация моделей каталога на сайте администрирования....395 Формирование представлений каталога....397 Создание шаблонов каталога....399 Разработка корзины покупок....405 Использование сеансов Django....405 Настроечные параметры сеанса....406 Срок истечения сеанса....407 Хранение корзин покупок в сеансах....408 Создание представлений корзины покупок....412 Добавление товаров в корзину....413 Разработка шаблона отображения корзины....415 Добавление товаров в корзину....417 Обновление количества товаров в корзине....419 Создание процессора контекста для текущей корзины....420 Процессоры контекста....420 Установка корзины в контекст запроса....421 Регистрация заказов клиентов....423 Создание моделей заказа....424 Включение моделей заказа на сайт администрирования....426 Создание заказов клиентов....427 Асинхронные задания....433 Работа с асинхронными заданиями....433 Работники, очереди сообщений и брокеры сообщений....434 Использование Django с Celery и RabbitMQ....435 Отслеживание Celery с помощью инструмента Flower....442 Дополнительные ресурсы....445 Резюме....445 Глава 9. Управление платежами и заказами....446 Интеграция платежного шлюза....446 Создание учетной записи Stripe....447 Установка библиотеки Stripe....450 Добавление Stripe в проект....451 Формирование процесса платежа....452 Интеграция платежного инструмента Stripe Checkout....454 Тестирование процесса оформления заказа....461 Использование тестовых кредитных карт....463 Проверка платежной информации в информационной панели Stripe....465 Применение веб-перехватчиков для получения уведомлений о платежах....469 Создание конечной точки веб-перехватчика....469 Тестирование уведомлений веб-перехватчиков....474 Отсылки к платежам Stripe в заказах....477 Выход в прямой эфир....481 Экспорт заказов в CSV-файлы....482 Добавление конкретно-прикладных действий на сайт администрирования....482 Расширение сайта администрирования за счет конкретно-прикладных представлений....485 Динамическое генерирование счетов-фактур в формате PDF....490 Создание шаблона PDF....491 Установка библиотеки WeasyPrint....491 Прорисовка PDF-файлов....492 Отправка PDF-файлов по электронной почте....496 Дополнительные ресурсы....499 Резюме....500 Глава 10. Расширение магазина....501 Создание купонной системы....501 Разработка купонной модели....502 Применение купона к корзине....506 Применение купонов к заказам....514 Создание купонов для платежного инструмента Stripe Checkout....519 Добавление купонов в заказы на сайте администрирования и в счета-фактуры в формате PDF....522 Разработка рекомендательного механизма....525 Рекомендация товаров на основе предыдущих покупок....526 Дополнительные ресурсы....534 Резюме....534 Глава 11. Добавление интернационализации в магазин....536 Интернационализация в Django....537 Настроечные параметры интернационализации и локализации....537 Команды управления интернационализацией....538 Установка инструментария gettext....538 Как Django определяет текущий язык....539 Как добавлять переводы в проект Django....539 Подготовка проекта к интернационализации....540 Перевод исходного кода Python....541 Ленивые переводы....542 Переводы с переменными....542 Стандартные переводы....542 Перевод собственного исходного кода....543 Формы множественного числа в переводах....543 Перевод шаблонов....547 Шаблонный тег {% blocktrans %}....548 Шаблонный тег {% trans %}....548 Перевод шаблонов магазина....549 Использование интерфейса перевода Rosetta....553 Нечеткие переводы....556 Шаблоны URL-адресов для интернационализации....556 Добавление префикса языка в шаблоны URL-адресов....557 Перевод шаблонов URL-адресов....558 Переключение языка сайта....562 Перевод моделей с помощью модуля django-parler....564 Установка модуля django-parler....564 Перевод полей моделей....565 Интеграция переводов на сайт администрирования....567 Создание миграций для переводов моделей....568 Использование переводов с ORM-преобразователем....571 Адаптация представлений под переводы....572 Локализация формата....574 Использование модуля django-localflavor для валидации полей формы....575 Дополнительные ресурсы....577 Резюме....578 Глава 12. Разработка платформы электронного обучения....579 Настройка проекта электронного обучения....580 Раздача медиафайлов....581 Разработка моделей курса....582 Регистрация моделей на сайте администрирования....584 Использование фикстур с целью предоставления моделям первоначальных данных....585 Создание моделей полиморфного содержимого....588 Использование модельного наследования....589 Абстрактные модели....590 Наследование многотабличной модели....590 Прокси-модели....591 Создание моделей Content....591 Создание конкретно-прикладных модельных полей....594 Добавление упорядочивания в модули и объекты содержимого....596 Добавление представлений аутентификации....600 Добавление системы аутентификации....600 Создание шаблонов аутентификации....601 Дополнительные ресурсы....604 Резюме....605 Глава 13. Создание системы управления контентом....606 Создание CMS....606 Использование примесей для представлений на основе классов....607 Создание представлений на основе классов....607 Работа с группами и разрешениями....610 Ограничение доступа к представлениям, основанным на классах....612 Управление модулями курса и их содержимым....618 Использование наборов форм для модулей курса....618 Добавление содержимого в модули курса....623 Управление модулями и их содержимым....629 Переупорядочивание модулей и их содержимого....634 Использование примесей из модуля django-braces....635 Дополнительные ресурсы....643 Резюме....643 Глава 14. Прорисовка и кеширование контента....644 Отображение курсов....645 Добавление регистрации студентов....650 Создание представления регистрации студентов....651 Зачисление на курсы....653 Доступ к содержимому курсов....657 Прорисовка разных типов содержимого....661 Использование кеш-фреймворка....663 Доступные кеш-бэкенды....664 Установка образа Memcached платформы Docker....665 Установка привязки Python к Memcached....665 Установка резидентного кеш-сервера Memcached....665 Добавление кеш-сервера Memcached в проект....666 Настроечные параметры кеша....666 Использование низкоуровневого API кеша....667 Уровни кеша....667 Проверка запросов к кешу с помощью меню отладочных инструментов Django Debug Toolbar....669 Кеширование на основе динамических данных....673 Кеширование фрагментов шаблона....674 Кеширование представлений....675 Использование сайтового кеша....676 Использование кеш-бэкенда Redis....677 Отслеживание сервера Redis с помощью приложения Django Redisboard....678 Дополнительные ресурсы....680 Резюме....681 Глава 15. Разработка API....682 Разработка RESTful API....683 Установка фреймворка Django REST framework....683 Определение сериализаторов....684 Что такое парсер и рендерер....685 Разработка представлений списка и детальной информации....686 Потребление API....688 Создание вложенных сериализаторов....690 Разработка конкретно-прикладных представлений API....692 Обработка аутентификации....693 Добавление разрешений в представления....694 Создание наборов представлений и маршрутизаторов....696 Добавление дополнительных действий в наборы представлений....698 Сериализация содержимого курса....699 Создание конкретно-прикладных разрешений....699 Потребление RESTful API....702 Дополнительные ресурсы....705 Резюме....706 Глава 16. Разработка чат-сервера....707 Создание приложения для ведения чата....707 Реализация представления чат-комнаты....708 Реально-временной Django на основе Channels....711 Асинхронные приложения с использованием ASGI....712 Цикл запроса/ответа с использованием приложения Channels....712 Установка приложения-обертки Сhannels....714 Написание потребителя....716 Маршрутизация....718 Реализация WebSocket-клиента....719 Активирование канального слоя....725 Каналы и группы....726 Установление канального слоя с использованием Redis....726 Обновление потребителя с целью широковещательной рассылки сообщений....727 Добавление контекста в сообщения....732 Видоизменение потребителя с целью обеспечения полной асинхронности....735 Интеграция приложения для ведения чата с существующими представлениями....737 Дополнительные ресурсы....738 Резюме....739 Глава 17. Выход в прямой эфир....740 Создание производственной среды....741 Управление настроечными параметрами для нескольких сред....741 Настрочные параметры локальной среды....742 Запуск локальной среды....743 Настройки производственной среды....743 Использование инструмента Docker Compose....745 Установка инструмента Docker Compose....745 Создание файла Dockerfile....746 Добавление требующихся пакетов Python....747 Создание файла Compose платформы Docker....748 Конфигурирование службы PostgreSQL....751 Применение миграции базы данных и создание суперпользователя....754 Конфигурирование службы Redis....755 Раздача Django через WSGI и NGINX....756 Использование сервера приложений uWSGI....757 Конфигурирование сервера приложений uWSGI....758 Использование веб-сервера NGINX....759 Конфигурирование веб-сервера NGINX....760 Использование хост-имени....762 Раздача статических и мультимедийных ресурсов....763 Сбор статических файлов....763 Раздача статических файлов с помощью веб-сервера NGINX....764 Обеспечение защиты сайта с помощью SSL/TLS....766 Проверка готовности проекта к работе в производственной среде....766 Конфигурирование проекта Django под SSL/TLS....767 Конфигурирование веб-сервера NGINX под использование SSL/TLS....769 Создание SSL/TLS-сертификата....769 Перенаправление HTTP-трафика на HTTPS....772 Использование Daphne для приложения Django Channels....773 Включение веб-сервера Daphne в конфигурацию веб-сервера NGINX....775 Использование безопасных соединений для веб-сокетов....775 Создание конкретно-прикладных промежуточных программных компонентов....779 Создание поддоменного промежуточного компонента....780 Раздача нескольких поддоменов с помощью веб-сервера NGINX....782 Реализация конкретно-прикладных команд управления....782 Дополнительные ресурсы....785 Резюме....786 Предметный указатель....788 Пустая страница....1Описание
Ниже — практический обзор по теме «django».
Книга охватывает многообразные аспекты создания веб-приложений с помощью самого популярного веб-фреймворка Django на языке Python. Изучив четыре проекта разной направленности (приложение для ведения блога и электронной коммерции, социальный веб-сайт, платформа электронного обучения), вы получите хорошее представление о том, как работает Django.
Прочитав книгу, вы:усвоите основы Django, включая модели, ORM-преобразователь, представления, шаблоны, URL-адреса, формы, аутентификацию, сигналы и промежуточные программные компоненты;реализуете аутентификацию с использованием учетных записей Facebook, Twitter и Google, настроите профили пользователей;разработаете каталог товаров и корзину покупок для онлайн-магазина;научитесь обрабатывать платежи с помощью платежного шлюза Stripe и управлять уведомлениями о платежах с помощью веб-перехватчиков;интегрируете в свой проект сторонние приложения Django.Опираясь на изученный материал, вы сможете создавать полнофункциональные веб-приложения на Python с аутентификацией, системами управления контентом, RESTful API и прочими элементами.
Оно подойдет и тем, кто уже использует Django в своей работе и хочет расширить свои навыки. Издание предназначено читателям с базовыми знаниями Python, а также программистам, переходящим на Django с других веб-фреймворков. Для изучения материала необходимы базовый опыт работы с Python и знание HTML и JavaScript.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «Django 4 в примерах. Разрабатывайте мощные и надежные веб-приложения на Python с нуля» бесплатно?
Да, «Django 4 в примерах. Разрабатывайте мощные и надежные веб-приложения на Python с нуля» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 16,6 МБ.
Кто автор и когда вышла книга?
автор — Меле Антонио, издательство ДМК Пресс, год выпуска 2023, 802 страниц.
О чём книга «Django 4 в примерах. Разрабатывайте мощные и надежные веб-приложения на Python с нуля»?
Книга охватывает многообразные аспекты создания веб-приложений с помощью самого популярного веб-фреймворка Django на языке Python.