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

- Подготовка среды разработки для Django
- Установка Django и вспомогательных инструментов
- Создание нового Django-проекта: команда startproject
- Первоначальная настройка проекта
- Запуск сервера для разработки и первая проверка
- Создание первого приложения (app) внутри проекта
- Миграции базы данных и работа с административной панелью
- Создание базовой архитектуры: URL, View, шаблон
- Типичные ошибки новичков и их решение
- Дальнейшие шаги: что делать после создания проекта
Подготовка среды разработки для Django
Перед началом работы с Django подготовьте среду разработки. Это позволит избежать конфликтов версий и облегчит установку зависимостей.
Проверка установки Python и pip
Django работает на Python, поэтому установите его на свое устройство либо убедитесь, что он уже установлен. В терминале или командной строке выполните команды python --version и pip --version. Вы увидите свои версии Python и менеджера пакетов pip.
Для запуска проектов Django нужна актуальная версия Python. Требования зависят от версии Django:
Django 5.2 LTS (рекомендуемая стабильная версия) требует Python 3.10, 3.11, 3.12 или 3.13
Django 6.0 (последняя версия) требует Python 3.12, 3.13 или 3.14
Рекомендуется устанавливать последнюю версию Python 3 (на данный момент — 3.13). Проверить версию можно командой python --version. Если у вас версия ниже 3.10, обязательно обновите Python с официального сайта.
Создание и запуск виртуального окружения
Виртуальное окружение помогает изолировать зависимости конкретного проекта от системных библиотек Python и библиотек других проектов, предотвращая конфликты версий. Создайте его в папке проекта с помощью команды python -m venv venv. Чтобы активировать окружение на Windows, примените venv\Scripts\activate, на Linux и macOS — source venv/bin/activate.
Установка Django и вспомогательных инструментов
Если Django еще не установлен, установите последнюю версию через менеджер пакетов pip, который поставляется вместе с Python. Используйте команду:

С ее помощью можно скачать свежую версию Django из PyPI — официального репозитория Python. После установки для проверки выполните команду:
Если вы все сделали правильно, то увидите название вашей версии Django. Если команда ничего не выдала, значит, что-то пошло не так, либо pip некорректно настроен.
Создание файла зависимостей requirements.txt
В requirements.txt хранятся все Python-пакеты, которые используются в проекте. Файл позволит:
быстро развернуть проект на другом устройстве;
без ошибок воспроизвести рабочее окружение;
повысить осведомленность всех специалистов, которые работают над проектом.
Создать файл можно командой pip freeze > requirements.txt. Компонент pip freeze выводит список всех зависимостей, > перенаправляет вывод в файл.
Как может выглядеть содержимое requirements.txt:
Фактические версии пакетов будут зависеть от времени установки и версии Django. Чтобы зафиксировать точные версии для вашего проекта, всегда используйте команду pip freeze > requirements.txt после установки всех необходимых пакетов. Для воспроизводимости окружения рекомендуется указывать точные версии, как в примере, а не плавающие (Django>=5.2).
Установить все зависимости из списка можно одной командой — pip install -r requirements.txt.
Создание нового Django-проекта: команда startproject
После настройки окружения можно приступать к созданию проекта. Django позволяет запустить его одной командой.
Использование утилиты django-admin
Создать Django-проект можно с помощью утилиты django-admin, которая устанавливается с Django. Используйте команду:
После выполнения команды появится папка mysite со структурой и настройками проекта. Структура выглядит примерно так:
Архитектура проектаКорень проекта — внешняя папка mysite/. Там лежат все связанные файлы, приложения, виртуальное окружение. Папка mysite/ — Python-пакет с конфигурацией проекта.
Создание проекта в указанной директории
Можно не создавать дополнительную внешнюю папку, а сделать проект в существующей директории. Для этого выполните команду:
После выполнения команды структура выглядит так:
Обзор созданной структуры файлов и папок:
manage.py — ключевой файл проекта, который нужен для создания приложений, запуска сервера и других важных операций.
settings.py — файл со списком приложений, параметров безопасности, настроек баз данных, шаблонов и статического контента.
urls.py — файл URL-конфигурации, который связывает URL-адреса с представлениями.
wsgi.py — файл, обеспечивающий взаимодействие Django с веб-сервером.
asgi.py — точка входа для ASGI-серверов.
Первоначальная настройка проекта
После запуска выполните базовые настройки, настройки базы данных и файлов. Рассказываем, что делать.
Базовые настройки: SECRET_KEY, DEBUG, ALLOWED_HOSTS
SECRET_KEY — секретный ключ, который создается Django и используется для криптографических операций (подписи сессий, токенов и т.д.). На этапе разработки можно оставить ключ по умолчанию.
Важно для безопасности:
В продакшне обязательно смените SECRET_KEY на уникальный, длинный и случайный.
Никогда не храните SECRET_KEY в коде, особенно если используете Git.
Правильный способ — хранить ключ в переменных окружения и читать через os.environ.get('DJANGO_SECRET_KEY').
Файл .gitignore должен исключать любые файлы с секретными данными (подробнее — в разделе про Git)
DEBUG — режим отладки. DEBUG = True на этапе разработки позволяет увидеть ошибки и недоработки проекта. При развертывании на боевом сервере должно быть DEBUG = False.
ALLOWED_HOSTS — перечень доменов и IP-адресов, с которых можно отправлять запросы к проекту. Он будет работать только при условии DEBUG = False.
Настройка базы данных (DATABASES)
По умолчанию Django использует SQLite. Она подходит для старта, поскольку не требует отдельного сервера и тонких настроек.
Если неправильно выставите настройки, в дальнейшем в проекте могут возникнуть ошибки. После выполнения команды убедитесь, что изменения применились.
Настройка статических (STATIC_URL) и медиафайлов (MEDIA_URL)
Статические файлы — CSS, JavaScript и изображения интерфейса. Базовая настройка в процессе разработки выполняется так:
При DEBUG = True и использовании встроенного сервера runserver Django будет отдавать статические файлы самостоятельно, без дополнительных настроек. Это работает только в режиме разработки.
Для production-среды (DEBUG = False):
Django не будет обслуживать статические файлы
Необходимо настроить веб-сервер (Nginx, Apache) или CDN для отдачи статики
Потребуется выполнить команду python manage.py collectstatic, которая соберет все статические файлы в папку, указанную в STATIC_ROOT
Подробнее об этом — в разделе «Дальнейшие шаги».
Медиафайлы — это файлы, которые загружают пользователи. Например, картинки и фотографии, видео, документы.
Базовая настройка такая:
MEDIA_ROOT — папка, где хранятся файлы. MEDIA_URL — URL для доступа к контенту.
Тонкие настройки нужны на этапе запуска проектов production. При разработке Django может отдавать медиафайлы напрямую.

Запуск сервера для разработки и первая проверка
Чтобы на этапе разработки запустить встроенный сервер Django, выполните команду:
Django запустит локальный сервер, который по умолчанию работает на порту 8000 и адресе 127.0.0.1. После запуска вы увидите в терминале сообщение о готовности сервера принимать запросы.
Проверка работы в браузере
После запуска сервера нужно убедиться, что Django работает, и проект создан правильно. Откройте браузер и введите адрес:
Если все в порядке, вы увидите стартовую страницу с надписью The install worked successfully и изображение ракеты.
Остановка сервера
Если хотите остановить сервер разработки, вернитесь в терминал и введите Ctrl+C. Сразу после этого Django перестанет принимать запросы, а порт 8000 освободится.
Создание первого приложения (app) внутри проекта
Следующий шаг в работе с Django-проектом — добавление приложения, которое будет отвечать за бизнес-логику и функциональность сайта.
Разница между проектом и приложением в Django
Проектом называется сайт со всей его структурой — настройками, маршрутизацией, базами данных и приложениями. Приложение — отдельный модуль внутри проекта. Например, блог, каталог или система коммуникации с пользователями. В одном проекте может быть несколько приложений.
Создания приложения и его регистрация в settings.py
Для создания приложения в папке проекта выполните команду:
После выполнения команды появится папка blog с типовой структурой файлов. Позже туда можно вносить изменения.
Новое приложение зарегистрируйте в настройках проекта. В файле settings.py найдите список INSTALLED_APPS и добавьте название 'blog'. Теперь приложение готово к работе.
Миграции базы данных и работа с административной панелью
Когда проект будет создан, примените начальные миграции с помощью команды:
Команда migrate применяет миграции для всех приложений, указанных в INSTALLED_APPS, включая встроенные приложения Django (admin, auth, sessions и др.). Именно поэтому после её выполнения создаются таблицы для админки и аутентификации.
С помощью команды можно создать таблицы в базе данных и применить настройки из DATABASES в settings.py.
Команда выполняется один раз при стартовом запуске проекта. В дальнейшем используйте ее при весомых изменениях.
Создание суперпользователя для доступа в админку
Работать с административной панелью может только пользователь с правами администратора. Важно: перед созданием суперпользователя необходимо применить миграции, чтобы в базе данных появились таблицы для хранения учетных записей.
Правильная последовательность действий:
1. Примените начальные миграции (если еще не сделали):
2. Создайте суперпользователя:
Django попросит ввести имя пользователя, email и пароль. После успешного создания все данные суперпользователя будут сохранены в базе.
Вход в административный интерфейс
Убедитесь, что запущен сервер разработки:
Зайдите в браузер и откройте:
Когда откроется страница входа в админ-панель, введите учетные данные суперпользователя. Войдя в систему, вы сможете управлять пользователями и данными, настраивать и изменять модели проекта.
Создание базовой архитектуры: URL, View, шаблон
Перед развитием функциональности проекта разберитесь с базовой архитектурой, которая выглядит так: URL → View → шаблон. Рассказываем, как настроить цепочку.
Добавление маршрута (URL) в urls.py проекта
Откройте файл config/urls.py и подключите маршруты приложения:
include('blog.urls') означает, что Django ищет маршруты внутри приложения blog. Все адреса, которые начинаются с /blog/, будут обрабатываться этим приложением.
Создание файла urls.py внутри приложения
В папке приложения создайте файл urls.py. Что в нем может быть записано:
views.index — функция, которая будет выполняться при открытии адреса.
Написание первого представления (view) во views.py
В приложении откройте файл views.py. Добавьте туда представление:
Предоставление принимает HTTP-запросы и возвращает браузеру текстовые ответы. Например, если вы перейдете по адресу http://127.0.0.1:8000/blog/, то увидите Hello, World!
Создание простого шаблона (template)
Внутри приложения создайте структуру:
Чтобы шаблон отображался во view, внесите изменения:
Django загрузит HTML-файл и отправит его браузеру. Если вы откроете http://127.0.0.1:8000/blog/, то увидите HTML-страницу из шаблона.
Типичные ошибки новичков и их решение
При работе с Django иногда возникают проблемы, но они быстро решаются, если понимать причины. Показываем варианты.
Ошибка | Причина | Решение |
ModuleNotFoundError / No module named … | Django не установлен либо не активировано виртуальное окружение | Активируйте виртуальное окружение и установите Django с помощью команды pip install django |
Invalid HTTP_HOST header | Адрес сервера не включен в ALLOWED_HOSTS | Откройте settings.py и добавьте домен или IP-адрес в ALLOWED_HOSTS |
404 после добавления своего URL | URL приложения не подключен к urls.py проекта | Проверьте, что подключен файл маршрутов приложения через include() |
Сервер не запускается | Порт 8000 занят другим процессом | Попробуйте запуститься на другом порту, например: python manage.py runserver 8080 |
Дальнейшие шаги: что делать после создания проекта
Создание проекта — только начало работы. Нужно настроить структуру данных и интерфейс, подготовить сайт к развертыванию.
Определение моделей (models.py) и создание миграций
Модели — классы, определяющие структуру данных. Каждая модель соответствует конкретной таблице, а поля модели — столбцам этой таблицы.
Классы моделей можно создать в файле models.py. после внесения изменений выполните команды:
После их применения Django создает структуру базы данных или обновляет существующую.
Настройка статических файлов (CSS, JS)
Статические файлы — неизменяемые файлы (CSS, JavaScript, изображения), которые отвечают за внешний вид и поведение сайта.
Базовая настройка:
Создайте в корне приложения (рядом с models.py, views.py) папку static/.
Внутри создайте подпапку с именем вашего приложения (например, blog/), чтобы избежать конфликтов.
Поместите файлы в структуру: blog/static/blog/css/style.css.
Подключение в шаблоне:
Тег {% static %} генерирует правильный URL к файлу с учетом настроек STATIC_URL.
Подключение Bootstrap или другого фронтенд-фреймворка
Фронтенд-фреймворки ускоряют работу над интерфейсом сайта. Самый простой способ — подключить Bootstrap через CDN в HTML-шаблоне, добавив в <head> следующие строки:
А перед закрывающим тегом </body>:
Не забудьте предварительно загрузить теги статики: {% load static %}.
Использование Django в production (Gunicorn, Nginx)
Встроенный сервер Django (runserver) предназначен только для разработки. Он небезопасен и неэффективен для production-нагрузок.
Типичная связка для production:
Gunicorn — WSGI-сервер, который запускает Python-код Django-приложения и обрабатывает динамические запросы
Nginx — веб-сервер и reverse-proxy, который принимает HTTP-запросы от пользователей, отдает статические файлы (CSS, JS, изображения) и перенаправляет динамические запросы к Gunicorn
Альтернативы: uWSGI, Daphne (для ASGI-приложений), Waitress.
Система контроля версий: инициализация Git-репозитория
Для управления разработкой удобно использовать Git. Это позволит отслеживать каждое изменение в коде. Можно посмотреть, кто, что и когда менял, и при необходимости откатиться к предыдущей версии проекта.
Как действовать:
Перейдите в корневую папку проекта Django.
Выполните инициализацию репозитория Git.
Добавьте файлы проекта под контроль версий.
Создание первого коммита.
Сразу настройте файл .gitignore. Добавьте туда все, что не должно попасть в репозиторий, например:
виртуальное окружение:
файлы кэша,
базу данных;
файлы с секретными ключами и переменными окружения.
В репозитории должны быть только исходный код и конфигурационные файлы, которые нужны для запуска. Это снизит риск утечки чувствительных данных и повысит готовность к развертыванию проекта готовым к развертыванию на сервере или публикации в удаленном репозитории.
Заключение
Создав проект на Django, вы заложите крепкий фундамент. Затем можно сосредоточиться на бизнес-логике, моделях, дизайне интерфейса и интеграции внешних сервисов. Фреймворк дает необходимые инструменты для развития проекта, и их легко освоят даже начинающие разработчики.
