- Регистрация
- 23 Август 2023
- Сообщения
- 2 959
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 51
Offline
В Django 6.0 есть кое-что для вас. Давайте рассмотрим самые важные новые функции и изменения, о которых вам нужно знать.
Сообщество Django представляет множество мощных нововведений, а также некоторые критические изменения. Ожидаемый выпуск запланирован на декабрь 2025 года.
Что нового в Django 6.0
Изменений в версии 6.0 много... В этой статье мы подробно разберем нововведения Django 6.0 и выделим критические изменения, нарушающие обратную совместимость, на которые стоит обратить внимание.
Политика безопасности контента (CSP): Встроенные промежуточное ПО (middleware) и настройки для заголовков CSP с поддержкой nonce.
Одним из самых значительных нововведений в Django 6.0 является встроенная поддержка Политики безопасности контента. Используйте ContentSecurityPolicyMiddleware и применяйте nonce-значения через контекстный процессор csp().
Формируемый заголовок Content-Security-Policy
from django.utils.csp import CSP
SECURE_CSP = {
"default-src": [CSP.SELF],
"script-src": [CSP.SELF, CSP.NONCE],
"img-src": [CSP.SELF, "https:"],
}
Это значительно упрощает защиту вашего веб-приложения от инъекций скриптов/стилей, межсайтового скриптинга (XSS) и связанных с ними уязвимостей.
Совет: При обновлении проверьте встроенные скрипты и стили и настройте разрешённые источники с помощью правил CSP.
Частичные шаблоны (Template Partials): Переиспользуемые фрагменты шаблонов
Django 6 представляет частичные шаблоны (partials) — это переиспользуемые именованные блоки внутри шаблонов. Вы определяете их с помощью тега {% partialdef %} и включаете с помощью {% partial %}.
Это позволяет вам модульно организовывать ваши шаблоны, избегая необходимости разбивать их на множество мелких файлов. Также вы можете ссылаться на частичные шаблоны, используя синтаксис template_name#partial_name.
Фреймворк Фоновых Задач (Background Tasks Framework): Новый декоратор @task и система очередей для асинхронных задач.
Ранее Django не включал встроенную систему задач или постановки заданий в очередь. Теперь в Django 6.0 вы получаете нативный фреймворк задач с использованием декоратора @task.
from django.core.mail import send_mail
from django.tasks import task
@task
def email_users(emails, subject, message):
return send_mail(subject, message, None, emails)
Примечание: Django отвечает за определение и планирование задач, однако для их непосредственного выполнения вам по-прежнему потребуется внешний воркер или планировщик.
Как обновить Django до новой версии
Перед обновлением... желательно устранить все предупреждения о устаревании, которые выдает ваш текущий проект.
Django 6.0 поддерживает Python 3.12 и 3.13. Настоятельно рекомендуется выполнить обновление.
python -Wa manage.py test
Если вы установили Django с помощью pip, используйте флаг --upgrade:
Windows:
uv add django --pre
# Тест на Windows
uv run python -Wa manage.py test
После запуска тестов исправьте все неудачные проверки. Пока записи о выпуске свежи в вашей памяти. Это также может быть подходящим моментом, чтобы воспользоваться преимуществами новых функций в Django, проведя рефакторинг вашего кода для устранения предупреждений об устаревании…
Критические изменения и удалённые возможности
Обновление до Django 6.0 не совсем простое. Вот ключевые критические изменения, на которые стоит обратить внимание:
Изменения в API базы данных:
Поддержка Python:
Поддержка MariaDB:
DEFAULT_AUTO_FIELD:
Пользовательские ORM-выражения:
Почтовый API:
Удалённые внутренние компоненты:
Изменение схемы URL:
Заключение: Более мощный и современный Django
Django 6.0 знаменует собой значительный шаг вперёд, укрепляя свои позиции в качестве фреймворка высшего класса для создания надёжных, масштабируемых и современных веб-приложений.
Если вы используете Django 5.x (или более раннюю версию), начинайте подготовку уже сейчас: проведите ваши проверку ваших пользовательских ORM-выражений и убедитесь в совместимости ваших зависимостей с Python 3.12.
Более подробно можете прочитать здесь - Django 6.0 Release Notes, Content Security Policy (CSP) , partials, and Task framework
Какая функция в Django 6.0 вам нравится больше? Поделитесь своим мнением в комментариях.

Сообщество Django представляет множество мощных нововведений, а также некоторые критические изменения. Ожидаемый выпуск запланирован на декабрь 2025 года.
Что нового в Django 6.0
Изменений в версии 6.0 много... В этой статье мы подробно разберем нововведения Django 6.0 и выделим критические изменения, нарушающие обратную совместимость, на которые стоит обратить внимание.

Политика безопасности контента (CSP): Встроенные промежуточное ПО (middleware) и настройки для заголовков CSP с поддержкой nonce.
Одним из самых значительных нововведений в Django 6.0 является встроенная поддержка Политики безопасности контента. Используйте ContentSecurityPolicyMiddleware и применяйте nonce-значения через контекстный процессор csp().
Формируемый заголовок Content-Security-Policy
from django.utils.csp import CSP
SECURE_CSP = {
"default-src": [CSP.SELF],
"script-src": [CSP.SELF, CSP.NONCE],
"img-src": [CSP.SELF, "https:"],
}
Это значительно упрощает защиту вашего веб-приложения от инъекций скриптов/стилей, межсайтового скриптинга (XSS) и связанных с ними уязвимостей.
Совет: При обновлении проверьте встроенные скрипты и стили и настройте разрешённые источники с помощью правил CSP.
Частичные шаблоны (Template Partials): Переиспользуемые фрагменты шаблонов
Django 6 представляет частичные шаблоны (partials) — это переиспользуемые именованные блоки внутри шаблонов. Вы определяете их с помощью тега {% partialdef %} и включаете с помощью {% partial %}.
Это позволяет вам модульно организовывать ваши шаблоны, избегая необходимости разбивать их на множество мелких файлов. Также вы можете ссылаться на частичные шаблоны, используя синтаксис template_name#partial_name.
Фреймворк Фоновых Задач (Background Tasks Framework): Новый декоратор @task и система очередей для асинхронных задач.
Ранее Django не включал встроенную систему задач или постановки заданий в очередь. Теперь в Django 6.0 вы получаете нативный фреймворк задач с использованием декоратора @task.
from django.core.mail import send_mail
from django.tasks import task
@task
def email_users(emails, subject, message):
return send_mail(subject, message, None, emails)
Примечание: Django отвечает за определение и планирование задач, однако для их непосредственного выполнения вам по-прежнему потребуется внешний воркер или планировщик.
Как обновить Django до новой версии
Перед обновлением... желательно устранить все предупреждения о устаревании, которые выдает ваш текущий проект.
Django 6.0 поддерживает Python 3.12 и 3.13. Настоятельно рекомендуется выполнить обновление.
python -Wa manage.py test
Если вы установили Django с помощью pip, используйте флаг --upgrade:
Windows:
uv add django --pre
# Тест на Windows
uv run python -Wa manage.py test
После запуска тестов исправьте все неудачные проверки. Пока записи о выпуске свежи в вашей памяти. Это также может быть подходящим моментом, чтобы воспользоваться преимуществами новых функций в Django, проведя рефакторинг вашего кода для устранения предупреждений об устаревании…
Критические изменения и удалённые возможности
Обновление до Django 6.0 не совсем простое. Вот ключевые критические изменения, на которые стоит обратить внимание:
Изменения в API базы данных:
return_insert_columns переименован в returning_columns
Поддержка Python:
Требуется Python 3.12 и выше
Поддержка Python 3.11 и более старых версий прекращена
Поддержка MariaDB:
Прекращена поддержка MariaDB 10.5
DEFAULT_AUTO_FIELD:
Теперь по умолчанию используется BigAutoField, если значение не задано явно
Пользовательские ORM-выражения:
Метод as_sql() теперь должен возвращать кортеж (sql, params_tuple) вместо списка
Почтовый API:
Позиционные аргументы в django.core.mail больше не поддерживаются — используйте именованные
Удалённые внутренние компоненты:
Устаревшие внутренние компоненты email
DjangoDivFormRenderer
Поддержка позиционных аргументов в BaseConstraint удалена
Изменение схемы URL:
Схема по умолчанию для urlize/urlizetrunc теперь HTTPS (резервный вариант с HTTP удалён)
Заключение: Более мощный и современный Django
Django 6.0 знаменует собой значительный шаг вперёд, укрепляя свои позиции в качестве фреймворка высшего класса для создания надёжных, масштабируемых и современных веб-приложений.
Если вы используете Django 5.x (или более раннюю версию), начинайте подготовку уже сейчас: проведите ваши проверку ваших пользовательских ORM-выражений и убедитесь в совместимости ваших зависимостей с Python 3.12.
Более подробно можете прочитать здесь - Django 6.0 Release Notes, Content Security Policy (CSP) , partials, and Task framework
Какая функция в Django 6.0 вам нравится больше? Поделитесь своим мнением в комментариях.