Випуск web-фреймворку Django 3.0

Відбувся реліз web-фреймворку Джанго 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». До такого коду віднесені, наприклад, операції з СУБД (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 для використання обмежень на основі виразу ВИКЛЮЧИТИ;
  • Припинено підтримку Python 3.5.

Джерело: opennet.ru

Додати коментар або відгук