Введение и обзор файлов проекта 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 всегда пустой и принадлежит каталогу. Файлы для деплоя проекта на продакшн.
Локальная разработка и продакшн 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. Рекомендация изучать документацию для более глубокого понимания.