Выпуск web-фреймворка Django 3.0
Состоялся релиз web-фреймворка Django 3.0, написанного на языке Python и предназначенного для разработки веб-приложений. Ветка 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, которые можно использовать для определения текстовых и целочисленных полей в модели, например, при необходимости хранения в полях наборов читаемых меток, транслируемых в определённые признаки:
class YearInSchool(models.TextChoices): FRESHMAN = 'FR', _('Freshman') SOPHOMORE = 'SO', _('Sophomore') JUNIOR = 'JR', _('Junior') SENIOR = 'SR', _('Senior') GRADUATE = 'GR', _('Graduate')
- Добавлена возможность указания выражений, выводящих BooleanField, напрямую в фильтрах QuerySet без их предварительного аннотирования, перед применением для фильтрации аннотаций.
- Обеспечена официальная поддержка СУБД MariaDB 10.1 и более новых выпусков.
- Для PostgreSQL реализован класс ExclusionConstraint для использования ограничений на базе выражения EXCLUDE;
- Прекращена поддержка Python 3.5.
Источник: http://www.opennet.ru/opennews/art.shtml? num=51989
© OpenNet