Релиз Django 3.0 с функциональной поддержкой MariaDB и Python >3.6

В декабре Django выпустила свое последнее серьезное обновление — Django 3.0. Django — это основанный на Python веб-фреймворк, разработанный, чтобы помочь разработчикам создавать приложения быстрее с меньшим количеством кода. Django 3.0 теперь поставляется со встроенной async функциональностью, поддержкой Python 3.6, 3.7 и 3.8 и поддержкой сторонних библиотек для более старых версий Django.

Новые фичи в Django 3.0

Поддержка MariaDB

Теперь Django официально поддерживает MariaDB 10.1 и выше. Чтобы использовать MariaDB, вы должны использовать серверную часть MySQL.

Поддержка ASGI для асинхронного программирования

Django 3.0 обеспечивает поддержку для работы в качестве приложения ASGI, что делает Django полностью асинхронным (Django уже имеет поддержку WSGI). Однако асинхронные функции будут доступны только для приложений, работающих под ASGI. Как побочный эффект этого изменения, Django теперь знает об асинхронных циклах событий и блокирует вызывающий код, помеченный как «асинхронно небезопасный», такие как операции ORM. Это была одна из самых ожидаемых возможностей.

Выражения-фильтры

Выражения, которые выводят BooleanField, теперь могут использоваться непосредственно в фильтрах QuerySet, без необходимости сначала аннотировать, а затем фильтровать по аннотации.

Перечисления для моделей с полем выбора

Пользовательские типы перечисления TextChoices, IntegerChoices и Choices теперь доступны в качестве способа определения Field.choices. Типы TextChoices и IntegerChoices предоставляются для текстовых и целочисленных полей.

В Django 3.0 также прекращена поддержка PostgreSQL 9.4, которая заканчивается в декабре 2019 года. Также удалены частные API совместимости с Python 2. Поддержка Oracle 12.1 также заканчивается в июле 2021 года. Django 2.2 будет поддерживаться до апреля 2022 года. Django 3.0 официально поддерживает Oracle 12.2 и 18c.

Полный список обновлений доступен тут.