Состоялся релиз web-фреймворка Django 3.0
Состоялся релиз web-фреймворка Django 3.0, предназначенного для разработки веб-приложений. Ветка Django 3.0 отнесена к категории выпусков с обычным сроком поддержки и будет получать обновления до апреля 2021 года. LTS-ветка 2.22 будет поддерживаться до апреля 2022 года, а ветка 1.11 до апреля 2020 года. Поддержка ветки 2.1 прекращена.
Ключевые улучшения:
- Предоставлена поддержка работы в асинхронном режиме с выполнением в форме ASGI-приложения. Программный интерфейс ASGI (Asynchronous Server Gateway Interface) разработан как замена WSGI, нацеленная на обеспечение взаимодействия серверов, фреймворков и приложений, поддерживающих работу в асинхронном режиме. Поддержка запуска с использованием WSGI сохранена, а связанный с асинхронным режимом код включаются только при запуске в окружениях на базе ASGI.
Для асинхронного режима реализован отдельный цикл обработки событий (event loop), в котором не допускается вызов кода, помеченного как "async unsafe". К такому коду отнесены, например, операции c СУБД (ORM), которые нельзя использовать в асинхронном контексте (в этом случае будет выводиться ошибка SynchronousOnlyOperation) и следует выносить в отдельный синхронный поток.
- Добавлены специализированные перечисляемые типы TextChoices, IntegerChoices и Choices, которые можно использовать для определения текстовых и целочисленных полей в модели
- Добавлена возможность указания выражений, выводящих BooleanField, напрямую в фильтрах QuerySet без их предварительного аннотирования, перед применением для фильтрации аннотаций.
- Обеспечена официальная поддержка СУБД MariaDB 10.1 и более новых выпусков.
- Для PostgreSQL реализован класс ExclusionConstraint для использования ограничений на базе выражения EXCLUDE;
- Прекращена поддержка Python 3.5.
Опубликовано: 8 декабря 2019