Курс "Продвинутый Django 5 для продолжающих"
- Работать с ORM Django, мета-классами.
- Создавать абстрактные модели.
- Работать с менеджерами моделей.
- Познакомимся с индексами базы данных PostgreSQL.
- Создадим проект, используя метод разработки через тестирование.
- Разберём права доступа в Django на уровне пользователей и групп.
- Создадим проект используя технологию HTMX.
- Познакомимся с основами интернационализации и локализации проектов.
- Создадим асинхронный веб-чат с использованием Сhannels и WebSocket.
- Научимся выполнять асинхронные задания с помощью Celery и Redis.
- Рассмотрим различные виды и уровни кеша в Django.
- Работать с Docker
Цена курса: 2499р 1999р
В этом курсе углублённо рассматриваются вопросы разработки веб-приложений на Django, подробно разберем ORM Django, с индексами базы данных PostgreSQL. Разработаем приложение через тестирование, создадим CRUD проект с HTMX, Веб-Чат с использованием Сhannels и WebSocket и познакомимся с Celery и Redis. Рассмотрим вопросы интернационализации и локализации. Изучим кэш в Django. Разберем Docker Compose и выполним деплой проекта.
В курс входят:
- 191 лекция
- 39 тестов
Данный курс является продолжением курса «Django 5 для начинающих», в нём более углублённо рассматривается вопросы разработки веб-приложений Django 5 и специальные связанные с этим темы.
Раздел 1. «Основы GIT» Этот раздел кратко познакомит с Git, с этой распределенной системой контроля версий, которая поможет вам отслеживать и управлять изменениями в исходном коде своих проектов. В нём будут рассмотрены базовые команды Git, которые чаще всего используются при повседневной работе с ним.
Раздел 2. «Django ORM на основе проекта» Данный раздел объяснит работу Django ORM, объявление модели, запросы (менеджер, набор запросов), поддержку нескольких драйверов, написание пользовательских запросов, миграции и т. д. В нем будут рассмотрены связи один-к-одному, один-ко-многим и многие-ко-многим, методы возвращающие QuerySet и не возвращающие, и поисковые поля. Так-же в данном разделе будет рассмотрены агрегатные функции и их группировка, Q-объекты и F-объекты, Мета-классы, абстрактные модели и пользовательские менеджеры моделей.
Раздел 3. «Индексы баз данных» В этом разделе мы рассмотрим индексы в базе данных PostgreSQL, которые можно использовать для оптимизации наших запросов.
Раздел 4. «Разработка через тестирование» В этом разделе рассматривается подход к разработке приложений через написание тестов, который даёт нам надежный способ планирования каждой функции, до написания её кода. Написание автоматизированных тестов для средних и крупных приложений имеет важное значение.
Раздел 5. «Разрешения в Django» В этом разделе мы рассмотрим, как назначить права доступа пользователям и группам, чтобы разрешить им выполнять определенные действия.
Раздел 6. «HTMX на основе CRUD проекта» В данном разделе, на примере, рассматривается использование библиотеки HTMX в CRUD проекте, для динамического изменения контента страницы, без её перезагрузки. Данная библиотека даст нам простой способ использования AJAX(Asynchronous Javascript and XML) для взаимодействия с сервером.
Раздел 7. «Интернационализация и локализация в Django» Этот раздел познакомит с основами интернационализации и локализации проектов Django. В нём рассказывается как отмечать строковые литералы исходного кода и шаблонов для перевода, как генерировать и компилировать файлы переводов. Так-же будет рассмотрен процесс установки и использования приложения Rosetta в свой проект, чтобы управлять переводами через его веб-интерфейс. Кроме этого будет рассмотрен процесс локализации шаблонов URL-адресов, и будет рассмотрен селектор языка, позволяющий пользователям переключать язык сайта.
Раздел 8. «Создание чата на Django с использованием Сhannels и WebSocket» В этом разделе рассматривается использование Django Сhannels и WebSocket на примере приложения чата.
Раздел 9. «Асинхронные задачи в Django + Сelery + Redis» Данный раздел познакомит с Celery и объяснит, зачем и как использовать Celery для запуска асинхронной задачи.
Раздел 10. «Инфраструктура кэширования в Django» Этот раздел посвящён вопросам кэширования в Django, в нём будут рассмотрены различные виды и уровни кэша. На примере будет рассмотрена настройка и использование кэш-сервера Memcached, и различные варианты кэширования. Так-же будет рассмотрена проверка запросов к кэшу с помощью Django Debug Toolbar.
Раздел 11. «Django + Docker» В этом разделе мы рассмотрим основные концепции Docker и на примере создадим свой контейнер с Python проектов. Далее мы упакуем Django, PostgreSQL, Memcache, NGINX в контейнеры, настроим работу статических и медиа файлов и подготовим проект к деплою.
Раздел 12. «Деплой проекта через Docker» В этом разделе мы рассмотрим деплой проекта Django, вместе с базой данных PostgreSQL, веб сервером Gunicorn и Nginx на контейнерах Docker с Compose.
Раздел 13. «Дополнительно» В данном разделе содержится краткое описание различных плагинов Django, которые могут существенно упростить разработку и расширить функционал разрабатываемых сайтов.
Программа курса
Введение в веб-разработку
- Как работает интернет и веб-сайты?
- Краткий конспект по HTML
- Кратко о SQL
Основы GIT
- Введение в Git
- Основные команды Git
- Ветвление и слияние
- Работа с удаленными репозиториями
Django ORM на основе проекта
- Структура и поля моделей, создание проекта
- Связь One-To-One (Один к одному)
- Связь One-To-Many (Один ко многим)
- Связь Many-to-Many (Многие ко многим)
- Методы возвращающие QuerySet
- Методы, которые не возвращают QuerySet
- Поисковые поля
- Агрегатные функции и их группировка
- Q-объекты и F-объекты
- Мета-классы
- Абстрактные модели
- Пользовательские менеджеры моделей
Индексы баз данных
- Введение в индексы баз данных
- Подготовка проекта и установка Debug Toolbar, генерация данных
- Индексы PostgreSQL
Разработка через тестирование
- Что такое разработка через тестирование? Введение в UnitTest Создание нового проекта и введение в Django тестирование Написание тестов для моделей и URL-адресов Написание тестов для форм и шаблонов Написание тестов для представлений
Разрешения в Django
- Разрешения на уровне пользователя Разрешения на уровне группы
HTMX на основе CRUD проекта
- Введение в HTMX и создание проекта
- Модели и создание шаблонов
- Создание представлений
- Cоздание, редактирование и удаление записей
- Cортировка записей
- Добавление в проект Bootstrap 5
Интернационализация и локализация в Django
- Введение в интернационализацию и подготовка проекта
- Перевод моделей и форм
- Перевод шаблонов
- Использование библиотеки Rosetta
- Шаблоны URL-адресов для интернационализации
- Переключение языка сайта
Создание чата на Django с использованием Сhannels и WebSocket
- Введение в WebSocket
- Установка Channels и подготовка проекта
- Создание кастомной User модели
- Создание моделей чата
- Работа с представлениями и шаблонами
- Работа с WebSocket
- Работа с WebSocket, добавление асинхронности
- Redis + Django Channel
Асинхронные задачи в Django + Сelery + Redis
- Введение в Celery
- Подготовка проекта, добавление подтверждения регистрации
- Асинхронная отправка электронных писем
- Периодические задания
- Отслеживание Celery с помощью Flower
Инфраструктура кэширования в Django
- Введение в кэширование
- Виды кэша в Django
- Уровни кэша в Django
Django + Docker
- Знакомство с Docker
- Основные команды Docker
- Создание образов и запуск контейнера
- Контейнеризация Django и написание Dockerfile
- Введение в Docker Compose
- Docker Compose на примере Django, PostgreSQL и Memcached
- Подготовка к деплою, Gunicorn и NGINX в Docker Compose
- Настройка Docker-Compose для статических и медиа файлов
Деплой проекта через Docker
- Покупка VPS, доменного имени, привязка DNS
- Установка Docker на сервере
- Запуск Docker контейнеров на сервере
- Получение SSL-сертификата от Let's Encrypt и настройка HTTPS