Создание блога с помощью Django 4.1 - шаг за шагом
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Руководства «Django»
Комментариев: 1

Это сборник ссылок на мои уроки по созданию проекта на Django 4.1, которые я собрал для пояснения на каждый урок.

Создание сайта на Django: Урок 1, разворачивание Django приложения

В уроке 1:

  • Затронем установку Python
  • Создание виртуального окружения
  • Запуск проекта Django

Создание сайта на Django: Урок 2, создание модуля «Блог»

В уроке 2:

  • Запустим наш созданный Django проект через IDE редактор PyCharm
  • Посмотрим на декомпозицию проекта
  • Создадим первый модуль "Блог"

Создание сайта на Django: Урок 3, создание модели «Статьи»

В уроке 3:

  • Установим библиотеку MPTT
  • Установим библиотеку Pillow
  • Создадим модель "Статьи"
  • Создадим первые миграции
  • Создадим первого пользователя
  • Добавим модель "Статьи" в админ панель.

Создание сайта на Django: Урок 4, создание вложенной модели «Категории» с помощью Django MPTT (древовидные категории 🌳)

В уроке 4:

  • Рассмотрим создание модели "Категории" в виде дерева с помощью MPTT
  • Добавим категории к статьям.
  • Зарегистрируем модель в админке с помощью MPTT
  • Проведем миграции

Создание сайта на Django: Урок 5, улучшение моделей, добавление русского языка в Django

В уроке 5:

  • Добавим русский язык к проекту
  • Настроим часовой пояс
  • Переименуем заголовки приложения на русский язык

Создание сайта на Django: Урок 6, вывод списка статей на сайте, подключение шаблонов

В уроке 6:

  • Создадим первое представление на основе функций
  • Создадим первый шаблон
  • Добавим папки для шаблона в настройки проекта
  • Добавим контроллеры представлений

Создание сайта на Django: Урок 7, представления на основе классов

В уроке 7:

  • Рассмотрим представление ListView
  • Создадим первые представления на основе классов Django
  • Обновим представления из 6 урока, переведя их на классы

Создание сайта на Django: Урок 8, вывод картинки в шаблон Django без ошибки, если ее не подгрузили

В уроке 8:

  • Добавим папку статики и медиа для хранения изображений/файлов в проекте
  • Добавим метод показа изображения в шаблоне
  • Добавим заглушку для изображений

Создание сайта на Django: Урок 9, формирование автоматического slug, а также обработка кириллицы в SlugField Django

В уроке 9:

  • Добавим формирование авто-слагов в админ-панели и при сохранении модели
  • Из кириллицы будем переводить слаги в латиницу

Создание сайта на Django: Урок 10, добавление нового модуля, переименование изображений при загрузке в Django

В уроке 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)
  • Создадим шаблон профиля
  • Добавим соответствующий контроллер
  • Выведем необходимые данные профиля пользователя, включая аватар

Создание сайта на Django: Урок 21, профиль пользователя в Django: часть 3 (редактирование профиля, формы)

В уроке 21:

  • Добавим возможность редактирования профиля на сайте
  • Затронем формы
  • Добавим шаблон для редактирования, соответствующие представления (UpdateView)
  • Будем работать с двумя формами одновременно на странице

Создание сайта на Django: Урок 22, CRUD запросы: создание, обновление, удаление статьи на сайте Django

В уроке 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()

Создание сайта на Django: Урок 31, система древовидных комментариев: часть 1 (модель, форма, представление)

В уроке 31:

  • Создадим древовидную модель комментариев
  • Создадим соответствующую форму
  • Создадим необходимое представление для работы с fetch запросом JS

Создание сайта на Django: Урок 32, система древовидных комментариев: часть 2 (Добавление комментариев с помощью JavaScipt, оптимизация)

В уроке 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 

Комментарии к статье 1
  • Razilator
    28 мая 2023 г. 9:13

    Через пару дней сайт Notehunter.net будет отключен. Продолжить изучать курс вы можете на моём втором сайте.

Форма добавления комментария (необходима регистрация)