Это сборник ссылок на мои уроки по созданию проекта на Django 4.1, которые я собрал для пояснения на каждый урок.
Создание сайта на Django: Урок 1, разворачивание Django приложения
В уроке 1:
- Затронем установку Python
- Создание виртуального окружения
- Запуск проекта Django
Создание сайта на Django: Урок 2, создание модуля «Блог»
В уроке 2:
- Запустим наш созданный Django проект через IDE редактор PyCharm
- Посмотрим на декомпозицию проекта
- Создадим первый модуль "Блог"
Создание сайта на Django: Урок 3, создание модели «Статьи»
В уроке 3:
- Установим библиотеку MPTT
- Установим библиотеку Pillow
- Создадим модель "Статьи"
- Создадим первые миграции
- Создадим первого пользователя
- Добавим модель "Статьи" в админ панель.
В уроке 4:
- Рассмотрим создание модели "Категории" в виде дерева с помощью MPTT
- Добавим категории к статьям.
- Зарегистрируем модель в админке с помощью MPTT
- Проведем миграции
Создание сайта на Django: Урок 5, улучшение моделей, добавление русского языка в Django
В уроке 5:
- Добавим русский язык к проекту
- Настроим часовой пояс
- Переименуем заголовки приложения на русский язык
Создание сайта на Django: Урок 6, вывод списка статей на сайте, подключение шаблонов
В уроке 6:
- Создадим первое представление на основе функций
- Создадим первый шаблон
- Добавим папки для шаблона в настройки проекта
- Добавим контроллеры представлений
Создание сайта на Django: Урок 7, представления на основе классов
В уроке 7:
- Рассмотрим представление
ListView
- Создадим первые представления на основе классов Django
- Обновим представления из 6 урока, переведя их на классы
Создание сайта на Django: Урок 8, вывод картинки в шаблон Django без ошибки, если ее не подгрузили
В уроке 8:
- Добавим папку статики и медиа для хранения изображений/файлов в проекте
- Добавим метод показа изображения в шаблоне
- Добавим заглушку для изображений
В уроке 9:
- Добавим формирование авто-слагов в админ-панели и при сохранении модели
- Из кириллицы будем переводить слаги в латиницу
В уроке 10:
- Создадим новый модуль "System" для создания будущих моделей
- Создадим сервис с полезными функциями
- Научимся переименовывать изображения в авто-режиме при загрузке изображения
Создание сайта на Django: Урок 11, улучшение авто-слагов при добавлении статей
В уроке 11:
- Создадим функцию в сервисе для того, чтобы не было конфликтов при создании одинаковых слагов.
Создание сайта на Django: Урок 12, добавление Bootstrap 5.2 в Django 4.1
В уроке 12:
- Добавим веб-фреймворк Bootstrap для создания стилей шаблонов в Django
Создание сайта на Django: Урок 13, детальная страница статьи (DetailView)
В уроке 13:
- Рассмотрим представление
DetailView
- Создадим абсолютные ссылки на статьи
- Добавим новый шаблон для детальной страницы статьи
Создание сайта на Django: Урок 14, фильтрация статей по категориям
В уроке 14:
- Рассмотрим кастомизацию представления
ListView
- Создадим фильтр для отделения статей по категориям
- Добавим вывод категории в шаблон и соответствующие ссылки
Создание сайта на Django: Урок 15, добавление пагинации в Django
В уроке 15:
- Добавим к представлению
ListView
возможность пролистывания страниц (пагинацию) - Добавим кнопки навигации (1, 2, 3, 4 ...) в шаблон
Создание сайта на Django: Урок 16, методы QuerySet в Django ORM
В уроке 16:
- Рассмотрим основы Django ORM
- Фильтры
- Сортировки
Создание сайта на Django: Урок 17, свой кастомный менеджер QuerySet
В уроке 17:
- Рассмотрим создание своего менеджера QuerySet с фильтрами
- Добавим кастомный менеджер в модель
- Добавим кастомный менеджер в список статей (
ListView
)
Создание сайта на Django: Урок 18, создание абстрактной модели, наследование Django
В уроке 18:
- Рассмотрим создание абстрактной наследуемой модели
- Создадим SEO модель для статей
- Наследуемся с SEO модели в модели статей
Создание сайта на Django: Урок 19, профиль пользователя в Django: часть 1 (модель, сигналы)
В уроке 19:
- Создадим модель профиля через связь один к одному
- Создадим сигнал при котором будет создаваться профиль пользователя, как пользователь будет зарегистрирован
Создание сайта на Django: Урок 20, профиль пользователя в Django: часть 2 (представление профиля)
В уроке 20:
- Создадим представление профиля по slug (
DetailView
) - Создадим шаблон профиля
- Добавим соответствующий контроллер
- Выведем необходимые данные профиля пользователя, включая аватар
В уроке 21:
- Добавим возможность редактирования профиля на сайте
- Затронем формы
- Добавим шаблон для редактирования, соответствующие представления (
UpdateView
) - Будем работать с двумя формами одновременно на странице
В уроке 22:
- Рассмотрим CRUD запросы, а именно:
CreateView
UpdateView
DeleteView
- Создадим такие представления для статей
- Создадим соответствующие шаблоны
- Проверим работоспособность на сайте
Создание сайта на Django: Урок 23, миксины для представлений на основе классов в Django
В уроке 23:
- Рассмотрим готовые миксины предоставляемые Django:
LoginRequiredMixin
- Создадим свой собственный миксин
- Добавим миксины в представления
Создание сайта на Django: Урок 24, регистрация, аутентификация пользователей
В уроке 24:
- Создадим форму регистрации и аутентификации на сайте
- Добавим соответствующие шаблоны
- Проверим работоспособность форм и представлений
Создание сайта на Django: Урок 25, изменение пароля в профиле Django
В уроке 25:
- Создадим формы для изменения пароля в профиле
- Создадим необходимое представление
- Создадим соответствующий шаблон формы
- Проверим работу представления по изменению пароля в профиле
Создание сайта на Django: Урок 26, настройка SMTP для отправки писем с Google или Yahoo
В уроке 26:
- Рассмотрим добавление SMTP для отправки писем с сайта
- Как пример возьмем настройки для Yahoo и Google
- Настроим отправку
Создание сайта на Django: Урок 27, форма восстановления пароля
В уроке 27:
- Рассмотрим представление и форму по сбросу пароля
- Создадим соответствующие шаблоны
- Проверим работоспособность, получим письмо для восстановления пароля на почту
Создание сайта на Django: Урок 28, правки шаблона, функция выхода с сайта
В уроке 28:
- Сделаем некоторые правки в шаблоне
- Создадим представление для выхода с сайта
Создание сайта на Django: Урок 29, регистрация с подтверждением по электронной почте в Django
В уроке 29:
- Добавим новое представление для подтверждения аккаунта по email
- Создадим соответствующие функции в сервисах модуля system
Создание сайта на Django: Урок 30, установка debug-toolbar, оптимизация SQL запросов (n + 1)
В уроке 30:
- Установим django-debug-toolbar
- Научимся пользоваться django-debug-toolbar
- Рассмотрим основы оптимизации SQL с помощью Django ORM
- Оптимизируем запросы с помощью
select_related()
В уроке 31:
- Создадим древовидную модель комментариев
- Создадим соответствующую форму
- Создадим необходимое представление для работы с fetch запросом JS
В уроке 32:
- Создадим первый js файл для добавления комментариев без перезагрузки страницы
- Оптимизируем запросы с помощью
prefetch_related()
- Создадим соответствующие шаблоны вывода комментариев на странице статьи.
Создание сайта на Django: Урок 33, добавление ReCAPTCHA в Django для защиты от спама
В уроке 33:
- Добавим ReCaptcha в Django
- Защитим некоторые формы от спама
- Настроим рекапчу
- Обновим наши формы
- Проверим работоспособность рекапчи
Создание сайта на Django: Урок 34, добавление обратной связи в Django
В уроке 34:
- Создадим модель обратной связи
- Создадим представление для обратной связи
- Создадим форму обратной связи, а также защитим ее от спама.
- Создадим соотвествующие шаблоны
- Создадим функции для отправки писем с сайта на почту администратора из формы обратной связи
- Создадим функцию для получения ip адреса отправителя
Создание сайта на Django: Урок 35, добавление системы тегов в Django
В уроке 35:
- Добавим систему тегов с помощью django-taggit
- Подключим теги к статьям
- Добавим вывод тегов в шаблон
- Создадим представление по фильтрации статей по тегам
Создание сайта на Django: Урок 36, вывод похожих статей
В уроке 36:
- Создадим вывод похожий статей по тегам
- Обновим представление
DetailView
для наших статей - Добавим вывод похожих статей в шаблон
Создание сайта на Django: Урок 37, создание тегов шаблона
В уроке 37:
- Рассмотрим создание simple и inclusion тегов в шаблонах Django
- Создадим вывод последний комментариев
- Создадим вывод количества статей на сайте
Создание сайта на Django: Урок 38, добавление WYSIWYG редактора Сkeditor 5
В уроке 38:
- Установим django-ckeditor-5
- Добавим возможность загружать изображения в редактор
- Добавим редактор в админку, а также на сайт в наше представление по созданию статей на сайте
Создание сайта на Django: Урок 39, установка базы данных PostgreSQL
В уроке 39:
- Рассмотрим вкратце PostgreSQL
- Установим PostgreSQL на Windows
- Добавим PostgreSQL в Django
- Проведем миграции
Создание сайта на Django: Урок 40, создание поисковых алгоритмов по статьям
В уроке 40:
- Рассмотрим алгоритмы для поиска
- Создадим алгоритмы для поисковых запросов с помощью Postgres
- Создадим соответствующее представление
- Добавим в шаблон поисковую строку
Создание сайта на Django: Урок 41, создание системы рейтинга статей, часть 1 (модель, представление)
В уроке 41:
- Создадим модель рейтинга лайк/дизлайк для статей
- Создадим необходимое представление для работы с fetch js
Создание сайта на Django: Урок 42, создание системы рейтинга статей, часть 2 (JavaScript)
В уроке 42:
- Создадим новый файл js
- Добавим js функции для добавления рейтинга без обновления страницы
- Оформим шаблоны с рейтингом
Создание сайта на Django: Урок 43, создание sitemap.xml в Django для SEO
В уроке 43:
- Добавим карту сайта (sitemap.xml) для SEO
- Добавим соответствующий контроллер в корневой urls.py
Создание сайта на Django: Урок 44, создание rss ленты в Django для SEO
В уроке 44:
- Добавим RSS ленту для SEO
- Добавим соответствующий контроллер в корневой urls.py
Создание сайта на Django: Урок 45, система подписчиков, часть 1 (представление, оформление)
В уроке 45:
- Добавим представление подписки/отписки от пользователя
- Добавим в шаблон профиля подписки и подписчиков
Создание сайта на Django: Урок 46, система подписчиков, часть 2 (JavaScript)
В уроке 46:
- Добавим возможность подписки/отписки без перезагрузки страницы с помощью JavaScript
Создание сайта на Django: Урок 47, авторизация по email/логину
В уроке 47:
- Добавим возможность авторизации по email или логину пользователя
- Кастомизируем встроенный бекенд и подключим его в настройках проекта
Создание сайта на Django: Урок 48, добавление статуса онлайн
В уроке 48:
- Добавим статус онлайн для пользователя с возможностью кэширования
- Создадим соответствующий middleware
- Добавим middleware в настройки проекта
- Выведем статус в шаблон
- Создадим метод в модели профиля
- Добавим файловое кэширование
Создание сайта на Django: Урок 49, чистка медиа-файлов, оптимизация изображений
В уроке 49:
- Установим django-cleanup для чистки нежелательных медиа файлов при удалении статей
- Добавим оптимизацию изображений с помощью Pillow
Создание сайта на Django: Урок 50, асинхронные задачи, часть 1 (Установка Celery, Redis)
В уроке 50:
- Установим Celery
- Установим Redis в Windows
- Настроим Celery и Redis для совместной работы
- Запустим для теста Celery
Создание сайта на Django: Урок 51, асинхронные задачи, часть 2 (Отправка писем)
В уроке 51:
- С помощью Celery создадим асинхронную отправку писем подтверждения
Создание сайта на Django: Урок 52, создание собственных команд (резервное копирование базы данных)
В уроке 52:
- Создадим кастомную команду для резервного копирования базы данных
Создание сайта на Django: урок 53, резервная копия базы данных по расписанию в Django
В уроке 53:
- Создадим выполнение резервного копирования по расписанию в полночь
Создание сайта на Django: урок 54, свои страницы ошибок 403, 404, 500
В уроке 54:
- Создадим свой шаблон для ошибок 403, 404, 500
Создание сайта на Django: урок 55, докеризация проекта Django
В уроке 55:
- Докеризируем проект со всем необходимым для будущего деплоя
Создание сайта на Django: урок 56, деплой сайта с помощью Docker на VDS
В уроке 56:
- Деплой на виртуальный сервер с помощью Docker
Автор текстовых уроков: Меленчук В.А. / Razilator /
Проект: R Raphael / Notehunter.net
Вы можете посмотреть проект на GitHub: Razilator/Django-Example-Project: Course Notehunter.net
Razilator
Через пару дней сайт Notehunter.net будет отключен. Продолжить изучать курс вы можете на моём втором сайте.