Веб-разработка

Продвинутый Django 5 для продолжающих

В данном курсе мы подробно изучим аспекты создания веб-приложений с использованием Django. Особое внимание будет уделено Django ORM и работе с индексами в базе данных PostgreSQL. Мы разработаем приложение, опираясь на методологию тестирования, а также создадим проект CRUD с использованием HTMX. Кроме того, в рамках курса мы реализуем веб-чат, применяя возможности Channels и WebSocket, и познакомимся с инструментами Celery и Redis. Также обсудим важные темы интернационализации и локализации приложений. В процессе обучения мы изучим механизм кэширования в Django, а также разберемся с Docker Compose и осуществим развертывание нашего проекта.

  • Рейтинг 0 (0)
  • 44 ученика
  • Для продолжающих
Продвинутый Django 5 для продолжающих

Этот курс служит логическим продолжением обучения «Django 5 для начинающих». В нем проводится более детальное изучение аспектов разработки веб-приложений на Django 5, а также обсуждаются специфические темы, связанные с этой технологией. 

В этом курсе мы рассмотрели только продвинутые приемы разработки веб-приложений, обеспечивающие создание основных элементов сайтов. В ходе курса мы не только освоим основные принципы разработки на Django, но и научимся эффективно использовать Django ORM для работы с базами данных, организуя взаимодействие между моделями и таблицами. Мы рассмотрим, как правильно проектировать и оптимизировать индексы в PostgreSQL, что существенно повысит производительность нашего приложения. Практические задания помогут закрепить теоретические знания и применить их на практике.

 Данный курс также размещен на площадке Stepik.org, где его прошли более 600 человек, и имеет более 20 отзывов,  посмотреть отзывы вы можете по этой ссылке.

Мы подробно изучим методологию тестирования, что позволит нам писать надежные и устойчивые приложения. Создание проекта CRUD с использованием HTMX даст нам возможность реализовать динамические интерфейсы и пользовательский опыт, не прибегая к полной перезагрузке страницы. Участие в проекте веб-чата не только познакомит нас с передовыми технологиями, но и научит интеграции реального времени через WebSocket.

Кроме того, в рамках курса мы уделим внимание методам тестирования и отладки приложений на Django. Понимание принципов юнит-тестирования и использования инструментария, такого как pytest и unittest, позволит обеспечить качество кода и снизить количество ошибок на этапе разработки. Мы рассмотрим, как автоматизировать процесс тестирования, что сделает ваш рабочий процесс более эффективным и минимизирует риски, связанные с сбоем функциональности.

Также мы изучим возможности Celery, которые позволяют выполнять задачи периодически или по расписанию. Это особенно полезно для выполнения регулярных операций, таких как обновление данных или отправка напоминаний пользователям. Предоставляя такие функции, Celery становится незаменимым инструментом для разработки современных веб-приложений, обеспечивая пользователям плавный и эффективный опыт работы.

Кроме того, раздел о кэшировании в Django даст понимание, как улучшить скорость работы приложений, а использование Docker Compose упростит процесс развертывания и управление зависимостями. Обсуждение интернационализации и локализации поможет сделать наши приложения доступными для пользователей из разных стран, что является важным аспектом современного веб-разработки.

 

1. «Основы GIT» Данный раздел предоставит краткое введение в Git — распределённую систему управления версиями, которая позволяет вам следить за изменениями и организовывать работу с исходным кодом ваших проектов. Мы рассмотрим основные команды Git, которые наиболее часто применяются в ходе работы с этой системой.

2. «Django ORM на основе проекта» В этом разделе будет рассмотрена работа Django ORM, включая создание моделей, выполнение запросов (менеджеры и наборы запросов), поддержку различных драйверов, написание пользовательских запросов, миграции и так далее. Также будут изучены связи типов один-к-одному, один-ко-многим и многие-ко-многим, методы, которые возвращают QuerySet, и те, что этого не делают, а также поля для поиска. Дополнительно в разделе будут рассмотрены агрегатные функции и методы их группирования, использование Q- и F-объектов, Мета-классы, абстрактные модели и пользовательские менеджеры для моделей.

3. «Индексы баз данных»  В этом разделе мы изучим индексы в PostgreSQL, которые повысят эффективность наших запросов. Правильно настроенные индексы могут значительно повысить эффективность работы с базой данных.

4. «Разработка через тестирование» В данном разделе обсуждается метод разработки приложений, основанный на предварительном написании тестов, что обеспечивает надежный способ планирования каждой новой функции до начала написания ее кода. Автоматизированное тестирование имеет критически важное значение для средних и крупных приложений.

5. «Разрешения в Django» В данном разделе мы изучим, каким образом можно установить права доступа для пользователей и групп с целью разрешить им выполнять определенные операции.

6. «HTMX на основе CRUD проекта» В этом разделе мы примененим библиотеку HTMX в проекте CRUD для динамического обновления содержимого веб-страницы без ее перезагрузки. Эта библиотека предоставит нам удобный способ работы с AJAX (асинхронный Javascript и XML) для связи с сервером.

7. «Интернационализация и локализация в Django» В данном разделе будут изложены основные принципы интернационализации и локализации проектов на Django. Здесь будет показано, как помечать строковые литералы в исходном коде и шаблонах для последующего перевода, а также как создавать и компилировать файлы с переводами. Также будет описано, как установить и использовать приложение Rosetta в проекте, чтобы управлять переводами через его веб-интерфейс. Кроме того, мы подробно рассмотрим процесс локализации шаблонов URL-адресов и познакомимся с языковым селектором, который даст пользователям возможность выбирать язык интерфейса сайта.

8. «Создание чата на Django с использованием Channels и WebSocket» В этом разделе мы создадим приложение для чата. WebSockets и Django-каналы открывают целый мир возможностей, таких как связь устройств IoT в реальном времени.

9. «Асинхронные задачи в Django + Celery + Redis» В этом разделе мы познакомимся с Celery и узнаем, зачем и как использовать Celery для запуска асинхронной задачи. Celery используется для значительного улучшения взаимодействия с пользователем, и уменьшает влияние блокирующего кода веб-приложения во время обработки дальнейших запросов.

10. «Инфраструктура кэширования в Django» В этом разделе мы рассмотрим различные виды кэша в Django. На примере покажем настройку, использование кэш-сервера Memcached и добавление его в проект. Изучим различные уровни кэширования в Django. На примере нашего проекта django_htmx, научимся кэшировать наборы запросов QuerySet и фрагмент шаблонов. Так-же изучим кэширование отдельных представлений и всего сайта.

11. «Django + Docker» В этом разделе мы углубимся в ключевые принципы Docker и на практике создадим контейнер для проекта на Python. Затем мы организуем упаковку компонентов Django, PostgreSQL, Memcache и NGINX в отдельные контейнеры. Также мы настроим функционирование статических и медиафайлов, а затем подготовим проект к развертыванию.

12. «Деплой проекта через Docker» В данном разделе мы ознакомимся с процессом развертывания проекта на Django, используя базу данных PostgreSQL, веб-сервер Gunicorn и Nginx, все это будет работать в контейнерах Docker с использованием Docker Compose.

Программа курса
1.1 - Введение в Git

1.2 - Основные команды Git

1.3 - Ветвление и слияние

1.4 - Работа с удаленными репозиториями

2.1 - Структура и поля моделей, создание проекта

2.2 - Связь One-To-One (Один к одному)

2.3 - Связь One-To-Many (Один ко многим)

2.4 - Связь Many-to-Many (Многие ко многим)

2.5 - Методы возвращающие QuerySet

2.6 - Методы которые не возвращают QuerySet

2.7 - Поисковые поля

2.8 - Агрегатные функции и их группировка

2.9 - Q-объекты и F-объекты

2.10 - Мета-классы

2.11 - Абстрактные модели

2.12 - Пользовательские менеджеры моделей

3.1 - Введение в индексы баз данных

3.2 - Установка Debug Toolbar, генерация данных

3.3 - Индексы PostgreSQL

3.4 - Итоги работы

4.1 - Что такое разработка через тестирование

4.2 - Введение в UnitTest

4.3 - Создание нового проекта и введение в Django тестирование

4.4 - Написание тестов для моделей и URL-адресов

4.5 - Написание тестов для форм и шаблонов

4.6 - Написание тестов для представлений

4.7 - Итоги работы

5.1 - Разрешения на уровне пользователя

5.2 - Разрешения на уровне группы

6.1 - Введение в HTMX и создание проекта

6.2 - Модели и создание шаблонов

6.3 - Создание представлений

6.4 - Cоздание редактирование и удаление записей

6.5 - Cортировка записей

6.6 - Добавление в проект Bootstrap 5

6.7 - Итоги работы

7.1 - Введение в интернационализацию и подготовка проекта

7.2 - Перевод моделей и форм

7.3 - Перевод шаблонов

7.4 - Использование библиотеки Rosetta

7.5 - Шаблоны URL-адресов для интернационализации

7.6 - Переключение языка сайта

7.7 - Итоги работы

8.1 - Введение в WebSocket

8.2 - Установка Channels и подготовка проекта

8.3 - Создание кастомной User модели

8.4 - Создание моделей чата

8.5 - Работа с представлениями и шаблонами

8.6 - Работа с WebSocket

8.7 - Работа с WebSocket, добавление асинхронности

8.8 - Redis, Django, Channel

8.9 - Итоги работы

9.1 - Введение в Celery

9.2 - Подготовка проекта, добавление подтверждения регистрации

9.3 - Асинхронная отправка электронных писем

9.4 - Периодические задания

9.5 - Отслеживание Celery с помощью Flower

9.6 - Итоги работы

10.1 - Введение в кэширование

10.2 - Виды кэша в Django

10.3 - Уровни кэша в Django

10.4 - Итоги работы

11.1 - Знакомство с Docker

11.2 - Основные команды Docker

11.3 - Создание образов и запуск контейнера

11.4 - Контейнеризация Django и написание Dockerfile

11.5 - Введение в Docker Compose

11.6 - Docker Compose на примере Django, PostgreSQL и Memcached

11.7 - Подготовка к деплою Gunicorn и NGINX в Docker Compose

11.8 - Настройка Docker-Compose для статических и медиа файлов

11.9 - Итоги работы

12.1 - Покупка VPS, доменного имени и привязка DNS

12.2 - Установка Docker на сервере

12.3 - Запуск Docker контейнеров на сервере

12.4 - Получение SSL-сертификата от Lets Encrypt и настройка HTTPS

13.1 - Полезные плагины для Django

Отзывы прошедших курс

0

Курс включает в себя:

  • Лекций 190
  • Тестов 16
  • Задач 48
  • Тип курса Платный
  • Уровень курса Для начинающих
  • Язык курса Русский
  • Обновлен None
  • Сертификат Выдается