Это репозиторий кода для Django 5 by example, написанный Антонио Меле и опубликованный Packt. Он содержит все вспомогательные файлы проекта, необходимые для работы с книгой от начала до конца.
Технический обозреватель: Марк Уокер
Предисловие: Паоло Мельхиорре
Код организован в каталоги с номером главы. Например, Chapter02
содержит исходный код главы 2. В каждой папке главы есть файл requirements.txt
, который включает все пакеты, необходимые для запуска кода этой главы. Их можно установить с помощью команды pip install -r requirements.txt
.
Запустите сервер разработки Django с помощью команды:
python manage.py runserver
Docker Compose объясняется в главе 17. Однако все главы включают конфигурацию Docker Compose и сценарий управления (вклад @marksweb).
Команды для сборки и запуска с помощью Docker Compose:
./do.sh build ./do.sh run
Список команд:
build [<arg>]
: собирает образы Docker. Необязательные аргументы могут указывать конкретные изображения для создания.
exec [<arg>]
: выполнить команду в контейнере.
compose
: минимальная оболочка вокруг Docker Compose, обеспечивающая загрузку правильных файлов конфигурации.
migrate [<arg>]
: применить все непримененные миграции Django.
makemigrations [<arg>]
: Создайте новую миграцию Django, указав при необходимости дополнительные аргументы.
check
: проверьте настройки Django.
shell
: откройте терминал bash в указанном контейнере (web_run).
start [<arg>]
: запустить сервер Django и зависимые службы. Используйте -d для запуска отсоединенного.
stop [<arg>]
: остановить сервер Django и зависимые службы.
Django 5 в примерах (5-е издание) проведет вас через весь процесс разработки профессиональных веб-приложений с помощью Django. Книга не только охватывает наиболее важные аспекты фреймворка, но также научит вас, как интегрировать другие популярные технологии в ваши проекты Django.
Книга проведет вас через создание четырех реальных приложений, решение типичных проблем и внедрение лучших практик, используя пошаговый подход, которому легко следовать.
Прочитав эту книгу, вы получите хорошее представление о том, как работает Django и как создавать практичные и продвинутые веб-приложения.
Для этой книги требуются Python 3.12+ и Django 5.
Книга охватывает широкий спектр тем разработки веб-приложений, разделенных на четыре различных проекта Django:
Приложение для блога (главы 1–3). Создайте полноценное приложение для блога.
Создавайте модели данных, представления и URL-адреса.
Реализуйте сайт администрирования для своего блога
Используйте канонические URL-адреса для моделей и внедряйте оптимизированные для SEO URL-адреса для публикаций.
Создайте пагинацию сообщений и узнайте, как создавать представления на основе классов.
Используйте формы, чтобы позволить читателям обмениваться сообщениями по электронной почте, и внедрите систему комментариев с использованием типовых форм.
Добавляйте теги к сообщениям с помощью django-taggit и рекомендуйте похожие сообщения на основе общих тегов.
Внедрите пользовательские теги шаблонов для отображения последних сообщений и наиболее комментируемых сообщений.
Реализуйте собственный фильтр шаблонов для рендеринга Markdown.
Создайте карту сайта и RSS-канал для своего блога.
Реализация полнотекстовой поисковой системы с использованием PostgreSQL.
Социальный веб-сайт (главы 4–7). Создайте веб-сайт для добавления в закладки и обмена изображениями.
Реализация аутентификации с использованием платформы аутентификации Django.
Расширьте модель пользователя с помощью модели пользовательского профиля.
Используйте структуру сообщений Diango
Создайте собственный бэкэнд аутентификации
Внедрите социальную аутентификацию (OAuth2) с помощью Google с помощью Python Social Auth.
Используйте расширения django для запуска сервера разработки через HTTPS.
Создание миниатюр изображений с помощью easy-thumbnails
Реализация отношений «многие ко многим» в моделях
Создайте букмарклет JavaScript с помощью JavaScript и Django.
Добавьте асинхронные HTTP-запросы с помощью API JavaScript Fetch и Django.
Реализация бесконечной прокрутки страниц.
Создайте систему отслеживания пользователей
Создайте поток активности пользователей и оптимизируйте наборы запросов.
Научитесь использовать сигналы Django
Используйте django-debug-toolbar для получения соответствующей информации об отладке.
Подсчет просмотров изображений с помощью Redis
Создайте рейтинг изображений с помощью Redis
Приложение для электронной коммерции (главы 8–11): создайте полнофункциональный интернет-магазин.
Построение моделей каталога продукции
Создайте корзину покупок, используя сеансы Django.
Создание пользовательских обработчиков контекста
Управляйте заказами клиентов
Отправляйте асинхронные уведомления с помощью Celery и RabbitMQ
Мониторинг сельдерея с помощью цветка
Интегрируйте Stripe для обработки платежей
Внедрите вебхук для получения уведомлений о платежах от Stripe
Создавайте собственные представления на сайте администрирования Django.
Создавайте действия администратора и генерируйте файлы CSV.
Динамическое создание счетов в формате PDF с помощью Weasyprint
Создайте систему купонов для применения скидок к заказам.
Интегрируйте скидки с платежами Stripe
Создайте механизм рекомендаций по продуктам с помощью Redis.
Добавьте интернационализацию в магазин
Создание файлов перевода и управление ими
Используйте Rosetta для управления переводами
Переведите шаблоны URL-адресов и создайте средство выбора языка
Перевести модели с помощью django-parler
Локализация форм с помощью django-localflavor
Платформа электронного обучения (главы 12–17): Создайте платформу электронного обучения, включая CMS.
Создание моделей курсов
Создание и использование фиксаторов данных
Используйте наследование модели для создания полиморфного контента.
Создайте настраиваемое поле модели, чтобы упорядочить содержимое курса.
Реализация представлений аутентификации
Создайте систему управления контентом, используя представления и миксины на основе классов.
Ограничить доступ с помощью групп и разрешений
Создавайте наборы форм для управления содержимым курса
Создайте функцию перетаскивания для изменения порядка содержимого на месте с помощью JavaScript и Django.
Использование универсальных миксинов из django-braces
Внедрение общедоступных представлений и представлений о зачислении студентов.
Отрисовывайте контент другого типа и используйте django-embed-video.
Кэшируйте контент с помощью платформы кэширования.
Используйте кэш-серверы Memaced и Redis.
Мониторинг Redis с помощью django-redisboard
Создайте API с помощью Django REST Framework.
Создавайте сериализаторы для моделей и пользовательских представлений API.
Обработка аутентификации и разрешений API
Создание наборов представлений API и маршрутизаторов
Используйте свой API с помощью запросов Python
Создайте сервер чата в реальном времени, используя каналы Django.
Реализация потребителя/клиента WebSocket с использованием Django и JavaScript.
Используйте Redis для настройки слоя канала
Сделайте ваш WebSocket полностью асинхронным
Реализация истории чата путем сохранения сообщений чата
Создание настроек для нескольких сред
Настройте производственную среду с помощью Docker Compose с PostgreSQL, Redis, Nginx, uWSGI и Daphne.
Безопасное обслуживание вашего проекта через HTTPS
Используйте систему проверки системы Django
Создайте собственное промежуточное программное обеспечение
Создание пользовательских команд управления
Присоединяйтесь к книжному сообществу Discord, чтобы участвовать в текущих обсуждениях или/и инициировать новые. Вы увидите, что другие разработчики читают книгу вместе и помогают друг другу с вопросами.
Джанго 4 на примере
Джанго 3 на примере
Джанго 2 на примере
Джанго на примере
Хотя 5-е издание книги переведено на другие языки, вы можете найти переводы предыдущих изданий:
Упрощенный китайский: Django 4实例精解.
Польский: Django 4. Практические два приложения sieciowych. Видание IV
Русский: Django 4 в примерах
Бразильский португальский: Aprenda Django 3 с примерами
Сербско-хорватско-боснийский: Джанго 3 кроза премьер, превод III изданья
Испанский: Джанго 2
Если вы уже приобрели печатную версию этой книги или версию Kindle, вы можете бесплатно получить PDF-версию без DRM. Просто нажмите на ссылку, чтобы получить бесплатный PDF-файл: https://packt.link/free-ebook/9781805125457.
Мы также предоставляем PDF-файл с цветными изображениями снимков экрана и диаграмм, использованных в этой книге, на сайте GraphicBundle.
Страница 39 Пример кода Post.objects.filter(id_lt=3).count()
должен иметь вид Post.objects.filter(id__lt=3).count()