В этом курсе углублённо рассматриваются вопросы разработки веб-приложений Django, подробно разберем ORM Django, с индексами базы данных PostgreSQL. Разработаем приложение через тестирование, создадим CRUD проект с HTMX, Веб-Чат с использованием Сhannels и WebSocket и познакомимся с Celery и Redis. Рассмотрим вопросы интернационализации и локализации. Изучим кэш в Django. Разберем Docker Compose и выполним деплой проекта.
Чему вы научитесь
Для кого этот курс
Курс будет полезен для продолжающих свою веб-разработку в Django 4.
Начальные требования
Обладать хорошими практическими знаниями Python и иметь знания HTML, SQL. Знать фреймворк Django на начальном уровне.
Чему вы научитесь
- Работать с ORM Django, мета-классами.
- Создавать абстрактные модели.
- Работать с менеджерами моделей.
- Познакомимся с индексами базы данных PostgreSQL.
- Создадим проект, используя метод разработки через тестирование.
- Разберём права доступа в Django на уровне пользователей и групп.
- Создадим проект используя технологию HTMX.
- Познакомимся с основами интернационализации и локализации проектов.
- Создадим асинхронный веб-чат с использованием Сhannels и WebSocket.
- Научимся выполнять асинхронные задания с помощью Celery и Redis.
- Рассмотрим различные виды и уровни кеша в Django.
- Работать с Docker
Данный курс является продолжением курса "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, которые могут существенно упростить разработку и расширить функционал разрабатываемых сайтов.
Раздел 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, которые могут существенно упростить разработку и расширить функционал разрабатываемых сайтов.
Курс будет полезен для продолжающих свою веб-разработку в Django 4.
Начальные требования
Обладать хорошими практическими знаниями Python и иметь знания HTML, SQL. Знать фреймворк Django на начальном уровне.
https://stepik.org/course/177355/