Скоро Django 3
О нововведениях и изменениях в грядущей мажорной версии каркаса.
Не так долго осталось ждать декабря, на который запланирован выпуск новой версия каркаса для веб-разработки Django. Уже сейчас можно ознакомиться с альфа версией готовящегося выпуска.
Рассмотрим, чего нам ждать от новинки.
Некоторые изменения:
И ещё немало других интересных штук в области моделей, безопасности, инструментов для тестирования.
Обратите внимание на обратно несовместимые изменения, если вы:
Рассмотрим, чего нам ждать от новинки.
На заметку
Прежде всего стоит отметить, что линейка 2.2 была последней поддерживавшей Питон 3.5, линейка 3 потребует Питон 3.6+ (например, в прошлогодней
Ubuntu 18.04 LTS
версия 3.6 ставится по умолчанию). Авторам подключаемых приложений рекомендуется отказаться от поддержки версий Джанго, предшествующих 2.2.Некоторые изменения:
- ASGI. Наряду с поддержкой WSGI Джанго теперь будет из коробки поддерживать ASGI для приложений, использующих асинхронный код.
- MariaDB. Джанго теперь поддерживает указанную СУБД, начиная с версии 10.1, официально.
- Перечисления для choices. Базовый класс
Choices
и его наследники (TextChoices
,IntegerChoices
) помогут удобно определять варианты дляField.choices
. Определять нужно будет примерно также, как это делается в django-etc. - Права пользователя. Права, доступные пользователю непосредственно, теперь можно получить методом
User.get_user_permissions()
. - PostgreSQL. Исключающие ограничения. Поддержка данного типа ограничений стала возможной благодаря добавлению нового класса —
ExclusionConstraint
. - PostgreSQL. Конкурентные операции над индексами. Добавлены классы
AddIndexConcurrently
иRemoveIndexConcurrently
, позволяющие добавлять и удалять индексы в конкурентном режиме (без блокировок). - Хеш функции БД. Добавлена поддержка функций
MD5
,SHA1
,SHA224
,SHA256
,SHA384
,SHA512
. - Загрузка файлов. Настройка
FILE_UPLOAD_PERMISSION
теперь выставлена в0o644
. - Заголовки безопасности. Настройки
X_FRAME_OPTIONS
иSECURE_CONTENT_TYPE_NOSNIFF
теперь имеют более строгие значения по умолчанию.
И ещё немало других интересных штук в области моделей, безопасности, инструментов для тестирования.
Обратите внимание на обратно несовместимые изменения, если вы:
- Поддерживаете собственный бекенд для БД, использующий
DatabaseOperations
,DatabaseFeatures
,DatabaseIntrospection
. Некоторые атрибуты сменили имена. - До сих пор используете совместимые с Python 2 приватные API из
django.utils
иdjango.test.utils
. Функции совместимости теперь убраны. - Используете PostgreSQL 9.4 и Oracle 12.1. Их поддержка окончена.
На заметку
С более полным списком изменений, включая перечисления более неподдерживаемых и устранённых функций, можно ознакомиться на официальном сайте.
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.