Django 5 для начинающих:
Этот курс проведет вас через весь процесс разработки профессиональных веб-приложений с помощью Django и Django REST Framework. Все лекции посвящены объяснению механизмов работы веб-фреймворка Django путем написания нескольких проектов на Python с нуля и последующим их деплоем на сервер. В курсе 118 задач и 108 тестов для закрепления и проверки знаний. Внимание, данный курс не содержит ни минуты видео!
Чему вы научитесь:
- Работать с фреймворком Django
- Понимать архитектуру MTV
- Управлять URL
- Создавать модели
- Добавлять формы
- Применять шаблоны Django
- Подключать PostgreSQL в качестве БД
- Работать с Django REST Framework и создавать API
Программа курса
- Раздел 1. «Введение в веб-разработку»
- В этом разделе рассказывается о базовых принципах работы сети Интернет, DNS и веб-серверов, об основных протоколах сети Интернет — TCP/IP, HTTP, HTTPS и методах GET, POST, PUT и DELETE.
- Затем раздел познакомит с языком разметки HTML.
- А далее идёт описание работы СУБД и SQL — языка структурированных запросов, Также есть примеры основных SQL запросов для работы с БД.
- Раздел 2. «Основы + HelloWorld на Django»
- В этом разделе рассказывается как написать самый простейший проект на Django в стиле HelloWorld. В нём подробно описывается структура проекта, миграции, настройки проекта, приложения и модели, работа с представлениями и адресами. Рассматривается работа с шаблонами и представлениями на основе классов(CBV, Class Based Views).
- Также раздел знакомит с тестированием приложений и написанием тестов для проверки корректной работы проекта.
- Раздел 3. «Простой проект на Django с БД»
- В этом разделе рассказывается как создать простой проект с БД. В данном случае будет рассматриватся работа с SQLite.
- Раздел описывает создание модели базы данных, миграции моделей, создание и использование интерфейса администратора — админ-панели, работу с представлениями, моделями и URL.
- Также будет подробно рассмотрено тестирование данного проекта.
- Раздел 4. «CRUD — проект»
- В этом разделе, при создании данного проекта, основной упор будет на работе с объектами модели данных при чтении, записи, редактировании и удалении записей.
- Будет рассмотрены два варианта работы: на основе функций и на основе классов.
- Раздел 5. «Создание блога»
- Этот раздел более подробно ознакомит с веб-фреймворком Django посредством создания приложения для ведения блога.
- Вы создадите базовые модели, представления, шаблоны и URL-адреса блога, чтобы отображать посты блога на страницах.
- Вы научитесь формировать наборы запросов QuerySet с помощью объектно-реляционного преобразователя Django (ORM) и сконфигурируете встроенный в Django сайт администрирования.
- Раздел 6. «Усовершенствование блога»
- Этот раздел научит добавлять в свой блог постраничную разбивку и реализовывать представления на основе классов Django.
- Вы научитесь отправлять электронные письма с помощью Django, а также обрабатывать и моделировать формы.
- Вы также реализуете систему комментариев к постам блога.
- Также, в этом разделе вы ознакомитесь с процессом создания системы тегирования и научитесь формировать сложные наборы запросов QuerySet, чтобы рекомендовать схожие посты.
- Здесь вы научитесь создавать собственные шаблонные теги и фильтры. Вы также узнаете, как использовать фреймворк для создания карты веб-сайта.
- Вы завершите свое приложение для ведения блога переносом БД с SQLite на PostgreSQL, и разработаете поисковый механизм, в котором используются возможности полнотекстового поиска PostgreSQL.
- Раздел 7. «Усовершенствование блога. Часть 2.»
- В этом разделе мы рассмотрим встроенную пользовательскую модель Django на основе django.contrib.auth, её поля.
- Создадим новое приложение для пользователей, в котором настроим все необходимые функции, такие как авторизация, регистрация, восстановление пароля и использование сессий.
- В дальнейшем мы его доработаем, добавив новые поля и профили для пользователей. Разработаем механизм создания и обновление профилей через использование сигналов в Django.
- После этого у пользователей появится возможность загружать аватары и писать информацию «О себе».
- Установим и настроим возможность авторизации пользователей через социальные сети(Google, GitHub) посредством OAuth 2.0.
- Также переделаем дизайн с использованием фреймворка Bootstrap 5.
- Раздел 8. «Создание API с помощью Django REST Framework»
- В этом разделе вы научитесь применять фреймворк, чтобы разработать RESTful API к своему проекту.
- Мы создадим сериализаторы и представления для моделей, а также разработаем конкретно-прикладные представления API.
- Мы также добавим аутентификацию в свой API, фильтры, пагинацию и ограничим доступ к представлениям API с помощью разрешений.
- Наконец, мы добавим схему и документацию, ведь это является жизненно важной частью любого API.
- Раздел 9. «Деплой проекта»
- Последним шагом любого проекта является развертывание.
- Мы установим виртуальное окружение, сервер приложений Gunicorn и Django.
- Перенесём файлы проекта на сервер, создадим список зависимостей и установим его.
- Настроим Django для работы в производственной среде, создадим статические файлы проекта.
- Установим и настроим веб-сервер NGINX и БД PostgreSQL и перенесём БД с локального компьютера на сервер.
- И в завершении получим сертификат от Let’s Encrypt и настроим HTTPS в NGINX.
- Раздел 10. «Создание блога 2.0»
- В этом модуле мы создадим с вами блог, но уже создавая только представления на основе классов.
- Мы рассмотрим все основные классы — ListView, DetailView, CreateView, UpdateView, DeleteView.
- А также добавим в него новый функционал, такой как древовидные категории, систему лайков и дизлайков, рассмотрим миксины, создадим древовидные комментарии, добавим ReCAPTCHA для форм.
- Установим Debug-Toolbar и оптимизируем SQL запросы и настроим шаблоны страниц ошибок.
Для кого этот курс:
- Курс будет полезен для начинающих свою веб-разработку в Django 5.
Начальные требования:
- Обладать хорошими практическими знаниями Python и иметь знания HTML, SQL.
Продвинутый Django 5 для продолжающих
В этом курсе углублённо рассматриваются вопросы разработки веб-приложений Django, подробно разберем ORM Django, с индексами базы данных PostgreSQL. Разработаем приложение через тестирование, создадим CRUD проект с HTMX, Веб-Чат с использованием Сhannels и WebSocket и познакомимся с Celery и Redis. Рассмотрим вопросы интернационализации и локализации. Изучим кэш в Django. Разберем Docker Compose и выполним деплой проекта.
Чему вы научитесь:
- Работать с ORM Django, мета-классами.
- Создавать абстрактные модели.
- Работать с менеджерами моделей.
- Познакомимся с индексами базы данных PostgreSQL.
- Создадим проект, используя метод разработки через тестирование.
- Разберём права доступа в Django на уровне пользователей и групп.
- Создадим проект используя технологию HTMX.
- Познакомимся с основами интернационализации и локализации проектов.
- Создадим асинхронный веб-чат с использованием Сhannels и WebSocket.
- Научимся выполнять асинхронные задания с помощью Celery и Redis.
- Рассмотрим различные виды и уровни кеша в Django.
- Работать с Docker
Программа курса
- Раздел 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, которые могут существенно упростить разработку и расширить функционал разрабатываемых сайтов.
Для кого этот курс:
- Курс будет полезен для продолжающих свою веб-разработку в Django 5.
Начальные требования:
- Обладать хорошими практическими знаниями Python и иметь знания HTML, SQL. Знать фреймворк Django на начальном уровне.











