В Django 4.1 добавлены асинхронные обработчики

автор vadim


Django 4.1, новая версия основного веб-фреймворка на основе Python, добавляет такие возможности, как асинхронные обработчики и интерфейс ORM, но также вносит некоторые обратно несовместимые изменения.

Доступ к Django 4.1, представленному 3 августа, можно получить на веб-сайте проекта Django. В новой версии представлены асинхронные обработчики для представлений на основе классов; Подклассы представлений теперь могут определять обработчики асинхронных методов HTTP, согласно примечаниям к выпуску.

Для асинхронного объектно-реляционного сопоставления QuerySet теперь предоставляет асинхронный интерфейс для всех операций доступа к данным. Новый интерфейс позволяет разработчикам писать асинхронный код без необходимости писать операции ORM в sync_to_async(). На этом этапе базовые операции базы данных остаются синхронными.

Django 4.1 поддерживает Python 3.8, Python 3.9 и Python 3.10, но только последние версии каждой серии. Также в Джанго 4.1:

  • Check, uniqueи exclusion ограничения, определенные в Meta.constraints теперь проверяются во время проверки модели.
  • Новый <div>Доступны шаблоны форм на основе текста, которые помогут пользователям, у которых есть программы чтения с экрана и другие вспомогательные технологии.
  • А CSRF_COOKIE_MASKED Переходная настройка позволяет разработчикам указать, следует ли маскировать файл cookie CSRF (подделка межсайтового запроса).
  • А SECRET_KEY_FALLBACKS Настройка позволяет предоставить список значений для проверки секретного ключа.
  • Для шаблонов HTML <script> элемент id Атрибут больше не требуется при обертывании json_script шаблон.
  • Для тестирования, DiscoverRunner теперь поддерживает параллельный запуск тестов в Windows, macOS и любых других системах, где по умолчанию multiprocessing метод запуска spawn.

Был внесен ряд обратно несовместимых изменений, в том числе некоторые из которых повлияли на внутренний API базы данных. В примечаниях к выпуску подробно описаны конкретные изменения, такие как BaseDatabaseFeatures.has_case_insensitive_like меняется с True к False чтобы отразить поведение большинства баз данных.

Поддержка исходной версии PostgreSQL 10 заканчивается в ноябре. Django 4.1 поддерживает PostgreSQL 11 и выше. Кроме того, поскольку поддержка MariaDB 10.2 завершилась в мае, Django 4.1 поддерживает MariaDB 10.3 и выше.

Еще одно изменение: чтобы унифицировать поведение с отношениями «многие ко многим» для несохраненных экземпляров модели, обратный внешний ключ теперь вызывает ошибку ValueError при вызове связанных менеджеров для несохраненных объектов.

Related Posts

Оставить комментарий