Курс "Продвинутый 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

При покупке через сайт действует скидка!