Wiki · Технологии разработки
Django
Django – это бесплатный веб-фреймворк на Python для сайтов и веб-сервисов. В нём из коробки есть работа с базой данных, автоматическая админка, пользователи с правами доступа и защита от распространённых атак.
Фреймворк вырос в редакции американской газеты: разработчикам нужно было быстро выпускать веб-проекты под новостные дедлайны. В 2005 году код открыли, а слоганом проекта стала фраза «веб-фреймворк для перфекционистов с дедлайнами». Назван он в честь джазового гитариста Джанго Рейнхардта. Если в Вордстате вам попадётся «django unchained», это фильм Тарантино, к разработке он отношения не имеет.
Кто развивает Django и сколько поддерживают LTS-версии
Проектом руководит некоммерческая Django Software Foundation, код пишут добровольцы со всего мира. Лицензия BSD разрешает бесплатно использовать фреймворк в коммерческих проектах. Новая версия выходит примерно раз в восемь месяцев, каждая третья получает долгосрочную поддержку (LTS) обычно на три года.
На октябрь 2026 года актуальна версия 6.1, вышедшая в августе. LTS-версия 5.2 получает исправления безопасности до апреля 2028 года, следующую LTS 6.2 планируют на апрель 2027 года. Django 4.2 и более ранние версии уже без поддержки. Django 6.1 работает на Python 3.12–3.14, поэтому обновление фреймворка часто тянет за собой обновление Python на сервере.
Что есть в Django из коробки
Django придерживается принципа «батарейки в комплекте»: то, что в других проектах собирают из отдельных библиотек, здесь уже встроено.
| Что есть | Что это даёт бизнесу |
|---|---|
| ORM и миграции | Работа с базой без ручного SQL. Изменения структуры базы записаны в коде и повторяются на любом сервере |
| Админка | Менеджеры правят данные сразу после того, как программист описал модель |
| Пользователи и права | Вход, группы, права доступа к разделам |
| Защита | Экранирование в шаблонах против XSS, токены против CSRF, параметризованные запросы против SQL-инъекций, защита от кликджекинга |
Официально Django работает с PostgreSQL, MariaDB, MySQL, Oracle и SQLite. В проектах на нём часто выбирают PostgreSQL.

Модель в коде и готовый раздел в админке
Условный пример: разработчик описывает услугу как модель.
class Service(models.Model):
title = models.CharField(max_length=200)
price = models.DecimalField(max_digits=10, decimal_places=2)
is_active = models.BooleanField(default=True)
По этому описанию Django создаёт таблицу в базе через миграцию. После одной строки регистрации в админке появляется раздел, где менеджер добавляет услуги, меняет цены и снимает их с публикации. Форму входа, список с поиском и фильтры писать не нужно.
Django и CMS: в чём разница
В документации проекта прямо сказано, что Django не CMS: это инструмент, на котором систему управления можно построить. Готовых шаблонов, каталога с корзиной и обмена с 1С, как у 1С-Битрикс, в нём нет. CMS на базе Django существуют, например Wagtail и django CMS, но и их под проект настраивает разработчик.
Встроенная админка тоже не замена CMS. Документация советует использовать её как внутренний инструмент компании, а интерфейс для клиентов писать отдельно.
| Вариант | Что это | Для каких задач |
|---|---|---|
| Django | Python-фреймворк с админкой, пользователями и ORM | Порталы, личные кабинеты, внутренние системы, сервисы с большой базой |
| FastAPI | Python-фреймворк для API | Бэкенд мобильного приложения, интеграции, сервисы с ИИ |
| Laravel | PHP-фреймворк | Те же задачи, что у Django, если команда пишет на PHP |
| 1С-Битрикс и другие CMS | Готовая система управления сайтом | Сайт компании, магазин с обменом с 1С |
Сервер, передача проекта и переезд на Django
Django давно в работе у крупных проектов: в FAQ фреймворка среди пользователей названы Pinterest, Mozilla и Disqus. Проект на нём можно передать другой команде, если код написан по документации, а не в обход неё.
Для запуска нужен сервер с Python, сервером приложений и веб-сервером перед ним. На обычном PHP-хостинге такой проект, как правило, не заработает, подробнее в статье Хостинг. Если вы переводите на Django сайт с другой платформы, сохраните адреса страниц или настройте 301 редиректы по правилам SEO-переезда.

Признаки Django: csrftoken, /admin/ и manage.py
- В коде форм есть скрытое поле csrfmiddlewaretoken, в cookies встречаются csrftoken и sessionid.
- По адресу /admin/ открывается вход «Администрирование Django». Админку часто переносят на другой адрес, и это правильно.
- В репозитории лежат файлы manage.py и settings.py.
Что делает проект на Django уязвимым и дорогим в поддержке
- Собирать клиентский личный кабинет на встроенной админке. Она сделана для сотрудников, клиентам нужны свои страницы.
- Оставить DEBUG = True на боевом сервере. При ошибке сайт покажет посетителю фрагменты кода и настройки, документация прямо запрещает так делать.
- Хранить SECRET_KEY и пароли в репозитории вместо переменных окружения.
- Годами сидеть на версии без поддержки, потому что всё работает. Сторонние пакеты тем временем перестают её поддерживать, и обновление растёт в объёме.
Если проект уже работает на Django, берём его на доработку и техническую поддержку. Новые сайты и сервисы делаем в услуге разработки сайтов под ключ.
Что уточнить перед проектом на Django
Какая версия Python нужна для Django 6.1?
Python 3.12, 3.13 или 3.14. Если на сервере стоит более старая ветка, сначала обновляют Python и только потом фреймворк, поэтому такой переход планируют как одну задачу, а не как установку свежего пакета.
Что ставить на новый проект: Django 6.1 или LTS 5.2?
Если команда готова обновлять фреймворк примерно раз в восемь месяцев, берите 6.1 со всеми новыми возможностями. Если важнее реже трогать проект, подойдёт 5.2: исправления безопасности для неё выходят до апреля 2028 года. Следующая LTS, 6.2, ожидается весной 2027 года.
Flask или Django: что взять для портала с личными кабинетами?
Для портала обычно Django: вход, права, админка и работа с базой в нём уже встроены. Flask устроен как микрофреймворк, в нём только основа, а остальное подключают отдельными расширениями. Его выбирают для небольших сервисов, где большая часть возможностей Django не пригодится.
Когда интернет-магазин имеет смысл делать на Django?
Когда логика нестандартная: маркетплейс или магазин со своей схемой заказов и цен. Корзину, оплату, доставку и обмен с 1С при этом собирают из пакетов и дописывают. Типовой магазин быстрее и дешевле запустить на CMS, где всё это уже есть.
Как сделать на Django API для мобильного приложения?
Чаще всего подключают пакет Django REST framework: он отдаёт данные моделей в JSON, проверяет права и показывает страницы для ручной проверки методов. Другой путь: оставить на Django админку и контент, а данные приложению отдавать отдельным сервисом на FastAPI. Оба фреймворка написаны на Python и нормально уживаются в одном проекте.
Какие базы данных подходят для Django?
Для боевого проекта чаще всего берут PostgreSQL, ещё фреймворк официально поддерживает MySQL, MariaDB и Oracle. SQLite стоит в настройках нового проекта по умолчанию и годится для разработки и маленьких внутренних сервисов. Сменить базу позже проще, чем без ORM: код запросов почти не меняется, но данные всё равно придётся переносить.
От каких атак Django защищает сам, а что остаётся на команде?
Сам фреймворк закрывает XSS, CSRF, SQL-инъекции и кликджекинг, пока разработчик не отключает эти механизмы. На команде всё остальное: режим отладки выключен на боевом сервере, ключи лежат вне репозитория, у админки сложные пароли, а версия вовремя обновляется до поддерживаемой.
Почему фреймворк называется Django и как это читать?
Фреймворк назван в честь джазового гитариста Джанго Рейнхардта. Произносится «джанго»: d в начале слова не читается, так же как в имени самого музыканта.
Как перевести сайт на Django и не потерять позиции в поиске?
Оставьте прежние адреса страниц, а где это невозможно, поставьте 301 редиректы со старых адресов на новые. Перенесите заголовки, описания и тексты, проверьте, что страницы быстро открываются и отдают поисковику обычный HTML. Порядок работ разобран в статье про SEO-переезд.
Менеджер должен править цены, но не удалять услуги: как это настроить в админке?
Через группы и права. У каждой модели в админке есть отдельные права на просмотр, добавление, изменение и удаление, поэтому менеджеру дают изменение услуг без удаления и без доступа к пользователям. Права назначают группе, а сотрудника просто добавляют в неё: при найме нового человека ничего не настраивают заново.
Источники
- Документация Django: общий FAQ, админка, безопасность, чек-лист развёртывания, поддерживаемые базы данных
- Django Software Foundation: процесс выпуска и сроки поддержки версий
- Django 6.1: примечания к выпуску
- Сайт Wagtail
Остались вопросы по теме «Django»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеСергей ЧерняковWeb-разработчикНад статьёй работали
Услуги
Услуги по теме
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
