Выпуск 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.

Источник: opennet.ru

Добавить комментарий