Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 638282)
Контекстум
Электро-2024

Django 2 в примерах. Создавайте мощные и надежные веб-приложения Python с нуля (4000,00 руб.)

0   0
Первый авторМеле
ИздательствоМ.: ДМК Пресс
Страниц409
ID794525
АннотацияDjango — это мощный Рython-фреймворк для веб-приложений, который поощряет быстрое развитие и чистый, прагматичный дизайн, предлагает относительно простое обучение. Это делает его привлекательным как для новичков, так и для опытных разработчиков. В рамках данной книги вы пройдете весь путь создания полноценных веб-приложений с помощью Django. Вы научитесь работать не только с основными компонентами, предоставляемыми фреймворком, но и узнаете, как интегрировать в проект популярные сторонние инструменты. В книге описано создание приложений, которые решают реальные задачи, используют лучшие практики разработки. После прочтения этой книги у вас будет понимание того, как работает Django, как создавать практичные веб-приложения и расширять их с помощью дополнительных инструментов. Издание будет полезно всем разработчикам приложений.
ISBN978-5-97060-746-6
УДК4.42
ББК32.972
Меле, А. Django 2 в примерах. Создавайте мощные и надежные веб-приложения Python с нуля / А. Меле .— Москва : ДМК Пресс, 2019 .— 409 с. — ISBN 978-5-97060-746-6 .— URL: https://rucont.ru/efd/794525 (дата обращения: 08.06.2024)

Предпросмотр (выдержки из произведения)

Django_2_в_примерах._Создавайте_мощные_и_надежные_веб-приложения_Python_с_нуля.pdf
УДК 004.42 ББК 32.972 М47 М47 Django 2 в примерах / пер. с анг. Д. В. Плотниковой. – М.: ДМК Пресс, 2019. – 408 с.: ил. Меле А. ISBN 978-5-97060-746-6 Django — это мощный Рython-фреймворк для веб-приложений, который поощряет быстрое развитие и чистый, прагматичный дизайн, предлагает относительно простое обучение. Это делает его привлекательным как для новичков, так и для опытных разработчиков. В рамках данной книги вы пройдете весь путь создания полноценных веб-приложений с помощью Django. Вы научитесь работать не только с основными компонентами, предоставляемыми фреймворком, но и узнаете, как интегрировать в проект популярные сторонние инструменты. В книге описано создание приложений, которые решают реальные задачи, используют лучшие практики разработки. После прочтения этой книги у вас будет понимание того, как работает Django, как создавать практичные веб-приложения и расширять их с помощью дополнительных инструментов. Издание будет полезно всем разработчикам приложений. УДК 004.42 ББК 32.972 Authorized Russian translation of the English edition of Django 2 by Example ISBN 9781788472487 © 2018 Packt Publishing. This translation is published and sold by permission of Packt Publishing, which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-78847-248-7 (анг.) ISBN 978-5-97060-746-6 (рус.) © 2018 Packt Publishing © Оформление, издание, перевод, ДМК Пресс, 2019
Стр.5
Содержание Об авторе ...................................................................................................................... 12 О рецензентах ............................................................................................................ 13 Предисловие ............................................................................................................... 14 Глава 1. Создание приложения блога .......................................................... 19 Установка Django ................................................................................................................ 19 Создание изолированного Python-окружения ............................................................ 20 Установка Django через pip ............................................................................................ 21 Создание первого проекта ................................................................................................. 21 Запуск сервера для разработки ..................................................................................... 23 Настройки проекта......................................................................................................... 24 Проекты и приложения ................................................................................................. 25 Создание приложения ................................................................................................... 25 Проектирование схемы данных для блога ........................................................................ 26 Активация приложения ................................................................................................. 28 Создание и применение миграций .............................................................................. 28 Создание сайта администрирования ................................................................................ 30 Сайт администрирования Django ................................................................................. 30 Добавление собственных моделей на сайт администрирования ............................... 31 Настройка отображения моделей ................................................................................. 33 Работа с QuerySet и менеджерами ..................................................................................... 35 Создание объектов ......................................................................................................... 35 Изменение объектов ...................................................................................................... 36 Получение объектов ....................................................................................................... 36 Удаление объектов ......................................................................................................... 37 Когда выполняются запросы QuerySet’ов ..................................................................... 37 Создание менеджера модели ........................................................................................ 38 Обработчики списка статей и страницы подробностей .................................................. 38 Создание обработчиков списка и страницы подробностей........................................ 39 Добавление шаблонов URL’ов для обработчиков ......................................................... 40 Канонические URL’ы для моделей ................................................................................ 41 Создание HTML-шаблонов для обработчиков .................................................................. 41 Добавление постраничного отображения ........................................................................ 44 Использование обработчиков-классов ............................................................................. 46 Резюме ................................................................................................................................. 47 Глава 2. Добавление продвинутых функций в блог ........................... 48 Функция «Поделиться статьей через e-mail» .................................................................... 48 Создание Django-форм .................................................................................................. 48
Стр.7
Содержание  7 Обработка данных формы ............................................................................................. 49 Отправка электронной почты с Django ........................................................................ 51 Отображение форм в HTML-шаблонах ......................................................................... 53 Добавление подсистемы комментариев ........................................................................... 56 Создание модельных форм ........................................................................................... 58 Обработка модельных форм ......................................................................................... 58 Добавление комментариев в шаблон статьи ............................................................... 60 Добавление подсистемы тегов .......................................................................................... 63 Формирование списка рекомендованных статей ............................................................ 68 Резюме ................................................................................................................................. 70 Глава 3. Расширение приложения блога ................................................... 71 Создание шаблонных тегов и фильтров ........................................................................... 71 Создание собственных тегов ......................................................................................... 71 Создание собственных фильтров .................................................................................. 76 Добавление карты сайта .................................................................................................... 78 Добавление RSS для статей ................................................................................................ 81 Добавление полнотекстового поиска ................................................................................ 83 Установка PostgreSQL ..................................................................................................... 83 Простые поисковые запросы ........................................................................................ 84 Поиск по нескольким полям ......................................................................................... 85 Обработчик поиска ........................................................................................................ 85 Стемминг и ранжирование результатов ...................................................................... 87 Взвешенные запросы ..................................................................................................... 88 Поиск с помощью триграмм ......................................................................................... 89 Другие инструменты полнотекстового поиска ............................................................ 90 Резюме ................................................................................................................................. 90 Глава 4. Создание социальной сети .............................................................. 91 Создание проекта для социальной сети ........................................................................... 91 Запуск проекта ............................................................................................................... 91 Использование системы аутентификации Django ........................................................... 92 Создание обработчика авторизации ............................................................................ 93 Использование обработчиков аутентификации Django ............................................. 98 Обработчики входа и выхода ........................................................................................ 98 Обработчики смены пароля ........................................................................................ 103 Обработчики восстановления пароля ........................................................................ 105 Регистрация и профили пользователей .......................................................................... 109 Регистрация пользователей ........................................................................................ 109 Расширение модели пользователя ............................................................................. 113 Подключение системы уведомлений ......................................................................... 118 Реализация бэкэнда аутентификации ............................................................................ 120 Подключение аутентификации через соцсети ............................................................... 122 Аутентификация Facebook ........................................................................................... 123 Аутентификация Twitter .............................................................................................. 128 Аутентификация Google .............................................................................................. 130 Резюме ............................................................................................................................... 134
Стр.8
8  Содержание Глава 5. Совместное использование содержимого сайта ............. 135 Сохранение изображений в закладки на сайте .............................................................. 135 Создание модели изображения ................................................................................... 136 Добавление отношения «многие ко многим» ............................................................ 137 Регистрация модели изображения на сайте администрирования ........................... 138 Использование изображений с других сайтов ............................................................... 138 Валидация полей формы ............................................................................................. 139 Переопределение метода save() модельной формы .................................................. 140 Букмарклет на jQuery ................................................................................................... 143 Создание обработчика для картинки .............................................................................. 151 Добавление превью для изображений ............................................................................ 153 Реализация AJAX-запросов с jQuery ................................................................................ 154 Подключение jQuery .................................................................................................... 156 Защита от межсайтовых запросов в AJAX .................................................................. 156 Выполнение AJAX-запросов с jQuery .......................................................................... 158 Создание собственных декораторов ............................................................................... 160 Постраничный вывод с помощью AJAX .......................................................................... 161 Резюме ............................................................................................................................... 165 Глава 6. Отслеживание действий пользователей .............................. 166 Реализация системы подписок ........................................................................................ 166 Отношение «многие ко многим» с промежуточной моделью .................................. 166 Создание обработчиков списка пользователей и подробностей профиля .............. 169 AJAX-обработчик для создания подписчика .............................................................. 173 Добавление новостной ленты .......................................................................................... 175 Использование подсистемы типов содержимого ...................................................... 176 Добавление обобщенных отношений ........................................................................ 177 Устранение дублирования новостей в ленте .............................................................. 179 Добавление активности в новостную ленту ............................................................... 180 Отображение ленты новостей .................................................................................... 181 Оптимизация QuerySetʼа со связанными объектами ................................................ 181 Создание шаблонов для новостной ленты ................................................................. 182 Использование сигналов Django ..................................................................................... 184 Работа с сигналами ...................................................................................................... 184 Конфигурационные классы приложений ................................................................... 186 Использование Redis для хранения представлений объектов ...................................... 188 Установка Redis............................................................................................................. 188 Использование Redis в Python-коде ........................................................................... 190 Сохранение представлений объектов в Redis ............................................................ 191 Хранение рейтинга объектов в Redis .......................................................................... 192 Следующие шаги с Redis .............................................................................................. 194 Резюме ............................................................................................................................... 195 Глава 7. Создание онлайн-магазина ............................................................ 196 Создание проекта ............................................................................................................. 196 Добавление моделей каталога товаров ...................................................................... 197
Стр.9
Содержание  9 Регистрация моделей каталога на сайте администрирования ................................. 199 Реализация обработчиков для каталога .................................................................... 200 Добавление шаблонов для отображения страниц каталога ...................................... 202 Добавление корзины покупок ......................................................................................... 206 Использование сессий Django ..................................................................................... 206 Настройки сессий ......................................................................................................... 207 Время жизни сессии ..................................................................................................... 207 Хранение данных корзины в сессии ........................................................................... 208 Обработка действий с корзиной покупок .................................................................. 211 Создание контекстного процессора для корзины ..................................................... 217 Регистрация заказов ......................................................................................................... 220 Создание моделей заказа ............................................................................................ 220 Добавление моделей на сайт администрирования ................................................... 221 Обработка заказов покупателей ................................................................................. 222 Выполнение асинхронных задач с Celery ....................................................................... 226 Установка Celery ........................................................................................................... 227 Установка RabbitMQ ..................................................................................................... 227 Подключение Celery к Django-проекту ....................................................................... 228 Добавление асинхронных задач ................................................................................. 228 Мониторинг Celery ....................................................................................................... 230 Резюме ............................................................................................................................... 231 Глава 8. Управление заказами и платежами ......................................... 232 Подключение платежного шлюза .................................................................................... 232 Создание аккаунта Braintree ....................................................................................... 233 Установка Python-приложения Braintree ................................................................... 234 Интеграция платежного шлюза в проект ................................................................... 235 Тестирование платежей ............................................................................................... 241 Запуск в боевом режиме .............................................................................................. 243 Экспорт заказов в CSV-файл ....................................................................................... 244 Добавление собственных действий на сайте администрирования .......................... 244 Расширение сайта администрирования ......................................................................... 246 Генерация PDF-счетов ...................................................................................................... 250 Установка WeasyPrint ................................................................................................... 251 Создание PDF-шаблона ............................................................................................... 251 Формирование PDF-файлов ........................................................................................ 252 Отправка PDF-файла на электронную почту ............................................................. 255 Резюме ............................................................................................................................... 256 Глава 9. Расширение онлайн-магазина .................................................... 257 Реализация системы купонов .......................................................................................... 257 Создание моделей ........................................................................................................ 258 Добавление оплаты купонами .................................................................................... 259 Обработка покупок по купонам .................................................................................. 265 Добавление интернационализации и локализации сайта ............................................ 267 Интернационализация Django .................................................................................... 267 Подготовка проекта к интернационализации ........................................................... 269
Стр.10
10  Содержание Добавление переводов в Python-код .......................................................................... 271 Перевод в HTML-шаблонах .......................................................................................... 275 Подключение Rosetta для перевода через сайт администрирования ...................... 279 Грязный перевод .......................................................................................................... 281 Шаблоны URLʼов для интернационализации ............................................................. 281 Добавление возможности сменить язык сайта .......................................................... 283 Перевод данных в моделях с django-parler ................................................................ 285 Настройка формата локализации ............................................................................... 292 Валидация форм с django-localflavor .......................................................................... 293 Реализация системы рекомендаций товаров ................................................................. 294 Добавление рекомендаций товаров на основе совершенных заказов .................... 294 Резюме ............................................................................................................................... 301 Глава 10. Создание платформы для онлайн-обучения .................. 302 Создание проекта ............................................................................................................. 302 Определение моделей для курсов обучения ................................................................... 303 Регистрация моделей на сайте администрирования ................................................ 305 Задание начальных данных с помощью фикстур ...................................................... 306 Создание моделей для содержимого курсов .................................................................. 308 Виды наследования моделей Django .......................................................................... 309 Создание моделей содержимого курса ....................................................................... 311 Создание собственных типов полей для модели ....................................................... 312 Добавление собственного поля сортировки в модели .............................................. 314 Создание системы управления содержимым (CMS) ...................................................... 318 Добавление системы аутентификации ...................................................................... 318 Создание шаблонов аутентификации ........................................................................ 318 Определение обработчиков-классов .......................................................................... 321 Использование примесей для обработчиков ............................................................. 321 Работа с группами и правами ..................................................................................... 323 Управление модулями курсов и их содержимым ........................................................... 330 Использование наборов форм для модулей курсов................................................... 331 Добавление содержимого в модуль ............................................................................ 334 Управление модулями и их содержимым ................................................................. 339 Изменения порядка модулей и их содержимого ....................................................... 343 Резюме ............................................................................................................................... 346 Глава 11. Отображение и кеширование содержимого курсов ..... 347 Отображение курсов ......................................................................................................... 347 Добавление регистрации обучающихся.......................................................................... 352 Обработка регистрации обучающихся в системе ...................................................... 352 Реализация записи на курсы ....................................................................................... 354 Доступ к содержимому курсов ......................................................................................... 357 Отображение различного типа содержимого ............................................................ 360 Использование фреймворка для кеширования .............................................................. 363 Доступные бэкэнды кеширования .............................................................................. 363 Установка Memcached .................................................................................................. 364 Настройки кеширования ............................................................................................. 364
Стр.11
Содержание  11 Добавление Memcached в проект ................................................................................ 365 Уровни кеширования ................................................................................................... 366 Использование низкоуровнего API кеширования ..................................................... 366 Кеширование фрагментов шаблонов ......................................................................... 370 Кеширование результатов работы обработчиков ...................................................... 371 Резюме ............................................................................................................................... 372 Глава 12. Реализация API ................................................................................... 373 Создание RESTful API ....................................................................................................... 373 Установка Django REST Framework .................................................................................. 374 Определение сериализаторов ..................................................................................... 374 Принцип работы парсеров и рендереров ................................................................... 375 Создание обработчиков списка и подробностей ....................................................... 376 Создание вложенных сериализаторов........................................................................ 379 Реализация собственных обработчиков ..................................................................... 380 Обработка аутентификации пользователей .............................................................. 381 Ограничение доступа к обработчикам с помощью разрешений ............................. 382 Создание блоков обработчиков и их маршрутизаторов ........................................... 383 Добавление собственных обработчиков в набор ....................................................... 385 Создание собственных разрешений ........................................................................... 385 Сериализация содержимого курсов ............................................................................ 386 Резюме ............................................................................................................................... 388 Глава 13. Запуск в боевом режиме ............................................................. 389 Создание окружения для запуска .................................................................................... 389 Управление настройками для нескольких окружений .............................................. 389 Настройка PostgreSQL .................................................................................................. 391 Проверка проекта ......................................................................................................... 392 Запуск Django в режиме WSGI-приложения .............................................................. 393 Установка uWSGI .......................................................................................................... 393 Конфигурация uWSGI .................................................................................................. 393 Установка NGINX .......................................................................................................... 395 Боевое окружение ........................................................................................................ 396 Конфигурация NGINX .................................................................................................. 396 Настройка отдачи статических и медиафайлов ........................................................ 397 Защита подключений с помощью SSL ........................................................................ 398 Создание собственного промежуточного слоя ............................................................... 401 Создание промежуточного слоя для доступа через поддомен ................................. 402 Настройка NGINX на работу с несколькими поддоменами ...................................... 403 Добавление собственных команд управления ............................................................... 404 Резюме ............................................................................................................................... 406 Предметный указатель ........................................................................................407
Стр.12

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст