Django 3 использует Python async для ускорения работы веб-приложений

Django 3 использует Python async для ускорения работы веб-приложений

03 Декабря 2019

Популярная среда веб-разработки Python добавляет поддержку асинхронного режима для повышения производительности веб-приложений.

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

Async позволяет программам Python, особенно сетевым приложениям, работать более эффективно, но существующие приложения должны быть переписаны для его использования. Django 3 будет работать только с Python 3.6 и более поздними версиями, чтобы лучше работать с функциями асинхронного программирования Python.

Ключевым способом поддержки асинхронности в Django является ASGI, протокол, который служит стандартным интерфейсом между асинхронными приложениями Python и веб-серверами, поддерживающими асинхронность. Раньше Django поддерживал только WSGI, который поддерживал только синхронные веб-приложения. Django 3 разрешит запуск асинхронных функций в приложении, только если оно развернуто как ASGI.

Django - давняя составляющая сообщества веб-разработчиков Python. Он предоставляет готовые реализации многих функций, общих для веб-сайтов: подключение к базе данных, учетные записи пользователей и управление пользователями, создание шаблонов (для отображения веб-страниц с использованием данных), ведение журнала и обработка ошибок, загрузка файлов и т. Д.

Как и в целом с Python, удобство Django достигается за счет относительно низкой производительности. Однако добавление async к Django означает, что он может получить повышение производительности для определенных операций, таких как обработка нескольких одновременных запросов с меньшей задержкой.

Многие другие новые функции в Django 3 являются инкрементными, например поддержка MariaDB 10.1 и выше, удаление API-интерфейсов, используемых для обратной совместимости с Python 2 (поскольку Python 2 быстро приближается к концу поддержки), и множество дополнительных функций во всем.