Полный курс по Python Django # Курс программирования Django # Django уроки # 2

YOUTUBE · 01.12.2025 05:13

Ключевые темы и таймкоды

Введение и обзор файлов проекта

0:00
  • Курс по Django от Валерия Павликова.
  • Обзор файлов корневой папки проекта.
  • Разница между локальной разработкой и продакшеном.

Файл settings.py и его переменные

1:00
  • Переменная BaseDIR содержит полный путь к проекту.
  • Переменная DEBUG=True для локальной разработки, False для продакшена.
  • Значение DEBUG=False предотвращает вывод подробной информации об ошибках на продакшене.

Доступные хосты и приложения

4:54
  • Переменная HOSTS определяет доступные хосты.
  • Переменная INSTALLED_APPS содержит установленные приложения.
  • Middleware — промежуточные слои для безопасности и аутентификации.

Шаблоны и бэкенд

6:52
  • Переменная TEMPLATES отвечает за отображение шаблонов.
  • DjangoTemplates — основной бэкенд для шаблонов в Django.
  • Контекст и другие переменные будут рассмотрены позже.

База данных и валидация паролей

7:51
  • Использование базы данных SQLite3.
  • Валидация паролей: минимум 8 символов, отсутствие повторений, наличие маленькой и заглавной буквы.

Локализация и статика

8:50
  • Выбор языка и таймзоны по умолчанию.
  • Статика: CSS, JavaScript, изображения и другие файлы проекта.
  • Поле STATIC_URL определяет путь к статическим файлам.

Файл urls.py

10:47
  • Доступный путь: /admin/.
  • Возможность добавления дополнительных URL-адресов в будущем.

Дополнительные файлы

11:47
  • Файл .pyc всегда пустой и принадлежит каталогу.
  • Файлы для деплоя проекта на продакшн.

Заключение

11:47
  • Следующий шаг: создание приложения и начало разработки.

Локальная разработка и продакшн

12:47
  • Локальная разработка происходит на локальном компьютере и доступна только разработчикам.
  • Продакшн — это публикация проекта в интернете для всех пользователей.
  • В продакшне проект доступен по домену, например, mysite.com.

Различия в базах данных

14:46
  • Для локальной разработки используется база данных SQLite 3.
  • Для продакшна применяется другая база данных, например, PostgreSQL.

Переменная debug

15:46
  • В локальной разработке переменная debug имеет значение True.
  • В продакшне переменная debug должна быть False.

Архитектура базы данных

16:45
  • Архитектура базы данных определяет структуру проекта.
  • Основные таблицы: пользователи, товары, категории, корзина товаров.

Приложения в Django

20:37
  • Приложения в Django похожи на полки в книжном шкафу, каждая из которых отвечает за определённый функционал.
  • По умолчанию в Django есть приложения для админки и работы с пользователями.
  • Для создания собственного проекта необходимо определить необходимые приложения.

Создание приложений

23:34
  • Архитектура базы данных помогает определить необходимые приложения.
  • Пример приложений: users_app и products_app.
  • Корзина товаров может быть включена в приложение products_app.

Перенос страниц в проект

24:33
  • Цель — перенести страницы с каталогом и главной страницей в проект Django.
  • Необходимо создать приложение для переноса страниц.

Создание приложения в Django

25:31
  • Заходим в терминал и используем команду `manage.py startapp produx`.
  • Проверяем правильность названия приложения, чтобы избежать ошибок в будущем.
  • После выполнения команды появляется новый каталог, который является приложением.

Регистрация приложения

26:28
  • Открываем файл `settings.py` и вводим название приложения.
  • Приложение зарегистрировано, можно начинать работу.

Структура файлов приложения

27:26
  • Файл `init.py` пустой и не требует дальнейшего обсуждения.
  • Файл `admin.py` отвечает за регистрацию таблиц в админке.
  • Файл `settings.py` содержит конфигурацию приложения.
  • Файл `models.py` используется для создания таблиц базы данных.
  • Файл `tests.py` предназначен для создания тестов проекта.
  • Файл `views.py` содержит функции для отображения шаблонов на сайте.
  • Каталог `migrations` содержит файлы миграций для работы с базами данных.

Дополнительные сведения о приложениях

30:20
  • Приложения в Django хранятся в библиотеке и имеют схожую структуру.
  • Можно переходить между каталогами с помощью клавиш `Command` или `Ctrl` в зависимости от операционной системы.

Принцип работы Django

34:12
  • Пользователь делает запрос, который обрабатывается файлом `urls.py`.
  • Запрос сравнивается с адресами в `urls.py` и перенаправляется на соответствующий контроллер в `views.py`.
  • Контроллер выполняет действия и формирует ответ в виде шаблона.
  • Шаблон выводится как ответ для пользователя.

Пример работы с представлениями

37:06
  • Создаём функцию `index` в `views.py` с параметром `request`.
  • Импортируем `response` для формирования ответа.
  • Подключаем функцию `index` к определённому адресу в `urls.py`.

Создание маршрута и функции индекса

39:04
  • Создаём маршрут с адресом «туториал» и передаём ссылку на функцию индекса.
  • Переходим на страницу «туториал» и видим выведенное сообщение.

Обработка запроса в Django

40:01
  • При переходе на страницу запрос отправляется в файл urls.py.
  • Если страница существует, запрос перенаправляется на соответствующее представление.
  • В представлении происходит логика и возвращается ответ.

Работа с шаблонами

41:01
  • Создаём папку templates для работы с шаблонами.
  • В папке templates создаём папку «туториал» и файл «тест.html».
  • Подключаем шаблон к контроллеру с помощью функции render.

Система шаблонов в Django

43:00
  • Система шаблонов Django позволяет создавать HTML-ответы.
  • Можно передавать данные в шаблоны через функцию render.
  • Пример передачи словаря с ключом «title» в шаблон.

Практическое подключение шаблонов

45:54
  • Переносим шаблоны «индекс.html» и «продукты.html» в проект.
  • Создаём каталог templates и подкаталог с именем приложения.
  • Копируем и вставляем шаблоны в проект.

Создание контроллера в views.py

48:51
  • В файле views.py создаём функцию-контроллер для отображения шаблонов.
  • Функция контроллера принимает параметр request и возвращает результат функции render.
  • Передаём параметры request и название шаблона.

Регистрация контроллера в urls.py

51:45
  • Регистрируем контроллер в urls.py, создавая новый адрес для отображения страницы.
  • Используем функцию pass для переопределения главной страницы.
  • Указываем контроллер, который будет использоваться для отображения страницы.

Импорт и настройка страницы

52:42
  • Импортируем приложение «продукция» и views.
  • Передаём ссылку на функцию «индекс».
  • Запускаем сервер и проверяем отображение страницы.

Добавление стилей

53:41
  • HTML-шаблон не находит папку «вендор» для стилей.
  • Переносим папку «вендор» в папку «Статик» проекта.

Настройка статических файлов

54:40
  • В settings.py указываем путь к папке «Статик».
  • Используем переменную «static_root» для определения пути к статическим файлам.

Работа с переменными

55:39
  • Объясняется разница между списком и кортежем в контексте Django.
  • Указывается путь до папки «Статик» с помощью переменной «BaseDIR».

Исправление HTML-шаблона

57:35
  • Исправляем пути к стилям и скриптам в HTML-шаблоне.
  • Перезагружаем сервер и проверяем отображение стилей.

Создание контроллера для продуктов

58:34
  • Создаём контроллер «products» с параметром «request».
  • В urls.py прописываем путь к функции «products».

Добавление стилей для контроллера

1:00:29
  • Добавляем стили для контроллера «products».
  • Обновляем страницу и проверяем отображение шаблонов.

Объяснение переменной «request»

1:02:27
  • Переменная «request» является экземпляром класса «HttpRequest».
  • Функция «pass» передаёт ссылку на функцию «index», которая принимает переменную «request».
  • Переменная «request» содержит полезную информацию о запросе.

Заключение

1:04:23
  • Подчёркивается важность понимания работы переменной «request» в Django.
  • Рекомендация изучать документацию для более глубокого понимания.