yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Как создать проект на Django: руководство для начинающих

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

Инструкции
Иллюстрация для статьи на тему «Как создать проект на Django: руководство для начинающих»
Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®

Подготовка среды разработки для 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. Используйте команду:

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

С ее помощью можно скачать свежую версию 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 может отдавать медиафайлы напрямую.

Управляемый PostgreSQL
Масштабируйте БД в 2 клика с SLA 99,7%
Управляемый PostgreSQL

Запуск сервера для разработки и первая проверка

Чтобы на этапе разработки запустить встроенный сервер 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, изображения), которые отвечают за внешний вид и поведение сайта.

Базовая настройка:

  1. Создайте в корне приложения (рядом с models.py, views.py) папку static/.

  2. Внутри создайте подпапку с именем вашего приложения (например, blog/), чтобы избежать конфликтов.

  3. Поместите файлы в структуру: 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. Это позволит отслеживать каждое изменение в коде. Можно посмотреть, кто, что и когда менял, и при необходимости откатиться к предыдущей версии проекта.

Как действовать:

  1. Перейдите в корневую папку проекта Django.

  2. Выполните инициализацию репозитория Git.

  3. Добавьте файлы проекта под контроль версий.

  4. Создание первого коммита.

Сразу настройте файл .gitignore. Добавьте туда все, что не должно попасть в репозиторий, например:

  • виртуальное окружение:

  • файлы кэша,

  • базу данных;

  • файлы с секретными ключами и переменными окружения.

В репозитории должны быть только исходный код и конфигурационные файлы, которые нужны для запуска. Это снизит риск утечки чувствительных данных и повысит готовность к развертыванию проекта готовым к развертыванию на сервере или публикации в удаленном репозитории. 

Заключение 

Создав проект на Django, вы заложите крепкий фундамент. Затем можно сосредоточиться на бизнес-логике, моделях, дизайне интерфейса и интеграции внешних сервисов. Фреймворк дает необходимые инструменты для развития проекта, и их легко освоят даже начинающие разработчики.

Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
4 марта 2026

Вам может понравиться