# Django для начинающих: пошаговое руководство по созданию веб-приложений

Источник: https://www.youtube.com/watch?v=0roB7wZMLqI
Канал: freeCodeCamp.org
Опубликовано: 01.05.2025

---

# Основы Django: полное руководство по разработке веб-приложений

[[JUMP:0:00]]

Django — это мощный веб-фреймворк на языке Python, предоставляющий структурированный подход к созданию динамических веб-приложений. В этом руководстве, представленном Абелем Гидеоном на канале freeCodeCamp.org, подробно разбираются ключевые концепции: от настройки окружения до создания полнофункционального проекта.

## 🛠 Подготовка среды разработки
[[JUMP:0:37]]

Для начала работы с Django требуется установка нескольких базовых инструментов:

*   **Python:** необходим для выполнения кода фреймворка.
*   **VS Code:** рекомендуемый редактор кода с установленными расширениями для Python и просмотра SQLite.
*   **pipenv:** менеджер пакетов и виртуальных окружений. Использование виртуального окружения позволяет изолировать зависимости конкретного проекта от глобальных пакетов системы.

Для установки Django внутри виртуального окружения используется команда `pipenv install django`. После завершения установки активировать окружение можно через `pipenv shell`.

## 🏗 Структура проекта и архитектура MVT
[[JUMP:3:02]]

Django базируется на архитектурном паттерне MVT (Model-View-Template).

*   **Model (Модель):** отвечает за взаимодействие с базой данных, структуру хранения и извлечение данных.
*   **View (Представление):** содержит логику приложения, обрабатывает запросы пользователя и формирует ответы.
*   **Template (Шаблон):** отвечает за пользовательский интерфейс, используя HTML-разметку с динамическими компонентами.

Для создания проекта используется команда `django-admin startproject [имя_проекта]`, а для создания отдельных функциональных модулей — `python manage.py startapp [имя_приложения]`.

## 🌐 Маршрутизация и обработка запросов
[[JUMP:10:44]]

Связывание URL-адресов с конкретными функциями представлений называется URL-маппингом.

1.  В папке приложения создается файл `urls.py`, в котором формируется список `urlpatterns`.
2.  В проекте используется функция `path` для сопоставления URL с функциями или классами из `views.py`.
3.  Для интеграции маршрутов приложения в проект используется функция `include` в главном файле `urls.py`.

Важно зарегистрировать созданное приложение в списке `INSTALLED_APPS` внутри файла `settings.py`, чтобы Django мог его распознать.

## 🗄 Работа с моделями и базами данных
[[JUMP:17:19]]

Django по умолчанию использует легковесную базу данных SQLite, однако поддерживает работу с другими системами, например, MySQL.

*   **Определение моделей:** создаются как классы, наследуемые от `models.Model`, где каждый атрибут соответствует колонке в БД.
*   **Миграции:** процесс переноса изменений из кода в структуру базы данных осуществляется двумя командами: `python manage.py makemigrations` и `python manage.py migrate`.
*   **Администрирование:** для доступа к панели администратора необходимо создать суперпользователя командой `python manage.py createsuperuser`. Чтобы управлять моделью через панель, её нужно зарегистрировать в файле `admin.py`.

## 📝 Формы и взаимодействие с пользователем
[[JUMP:20:33]]

Django упрощает обработку ввода через `ModelForm`, который автоматически генерирует поля формы на основе модели.

*   Для защиты форм при отправке данных (POST-запросы) обязательно использование `{% csrf_token %}`.
*   Метод `is_valid()` позволяет проверить введенные данные на соответствие требованиям модели.
*   После успешной валидации данные сохраняются в БД с помощью метода `form.save()`.

## 🎨 Создание шаблонов (Templates)
[[JUMP:34:46]]

Использование наследования шаблонов через `extends` позволяет минимизировать дублирование кода. Базовый шаблон (`base.html`) содержит общую структуру страницы, а специфический контент вставляется внутри блоков `{% block content %}`. Внутри HTML-шаблонов Django поддерживает циклы (`for`) и условные операторы, что облегчает динамическое отображение данных, например, списка товаров из базы.