🚀 Django 6.1 вышел: меньше магии, больше контроля
Новая версия Django приносит улучшения для production-приложений и работы с базой данных.
Главное новшество — новый подход к загрузке данных моделей.
Теперь можно контролировать, когда Django делает дополнительные запросы:
Это помогает бороться с проблемой N+1 запросов и лучше контролировать нагрузку на БД.
Новые режимы:
-
-
-
Также в Django 6.1:
- поддержка Python 3.12, 3.13 и 3.14;
- PostgreSQL 15+;
- MySQL 8.4+;
- MariaDB 10.11+;
- улучшения cache и внутренних механизмов.
Главная идея релиза:
Django всё меньше скрывает стоимость операций и даёт разработчикам больше контроля над тем, что происходит под капотом.
Подробнее:
https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
Новая версия Django приносит улучшения для production-приложений и работы с базой данных.
Главное новшество — новый подход к загрузке данных моделей.
Теперь можно контролировать, когда Django делает дополнительные запросы:
from django.db import models
books = Book.objects.fetch_mode(
models.FETCH_PEERS
)
Это помогает бороться с проблемой N+1 запросов и лучше контролировать нагрузку на БД.
Новые режимы:
-
FETCH_ONE — загружать данные только для текущего объекта;-
FETCH_PEERS — догружать данные сразу для группы объектов;-
RAISE — запрещать неожиданные запросы и ловить проблемы заранее.Также в Django 6.1:
- поддержка Python 3.12, 3.13 и 3.14;
- PostgreSQL 15+;
- MySQL 8.4+;
- MariaDB 10.11+;
- улучшения cache и внутренних механизмов.
Главная идея релиза:
Django всё меньше скрывает стоимость операций и даёт разработчикам больше контроля над тем, что происходит под капотом.
Подробнее:
https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется.
Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения.
Главная рекомендация - fail closed:
То есть по умолчанию DEBUG всегда выключен, а включается только локально.
Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с
Отдельная ловушка - переменные окружения:
Здесь
Лучше явно парсить boolean или использовать
Мелкая настройка, которая однажды может спасти production от очень неприятной утечки.
https://lincolnloop.com/blog/setting-djangos-debug-safely/
#Python #Django #Backend #Security #DevOps
Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения.
Главная рекомендация - fail closed:
DEBUG = False
То есть по умолчанию DEBUG всегда выключен, а включается только локально.
Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с
DEBUG=False.Отдельная ловушка - переменные окружения:
DEBUG = os.environ.get("DEBUG", "False") != "False"
Здесь
DEBUG=false или DEBUG=0 могут неожиданно превратиться в True.Лучше явно парсить boolean или использовать
django-environ.Мелкая настройка, которая однажды может спасти production от очень неприятной утечки.
https://lincolnloop.com/blog/setting-djangos-debug-safely/
#Python #Django #Backend #Security #DevOps