Django 3.0, la dernière version du framework en Python qui permet de créer rapidement des sites et services Web ayant besoin d’interagir avec une base de données en arrière-plan, supporte désormais la syntaxe async de Python. Ajoutée récemment au langage Python, cette puissante fonctionnalité accélère les sites Web et les services réseau. La syntaxe asynchrone permet aux applications Python, et en particulier aux applications réseau, de fonctionner plus efficacement. Mais les applications existantes doivent être réécrites pour l'utiliser. Django 3 ne fonctionne qu'avec les versions Python 3.6 et ultérieures, les plus adaptées pour utiliser les fonctions de programmation asynchrone de Python.

Pour prendre en charge cette syntaxe asynchrone, Django s’appuie essentiellement sur le standard ASGI (Asynchronous Server Gateway Interface), un protocole qui sert d'interface entre les applications Python asynchrones et les serveurs Web supportant la syntaxe async. Jusque-là, Django ne supportait que la spécification WSGI (Web Server Gateway Interface), laquelle ne supporte que les applications web synchrones. Django 3 pourra exécuter des fonctions asynchrones d’une application seulement si elle est déployée en tant que ASGI.

Des performances améliorées dans certaines opérations

Cela fait longtemps que la communauté de développement web Python travaille avec Django. Ce framework fournit des implémentations prêtes à l'emploi de nombreuses fonctionnalités communes aux sites Web : connectivité des bases de données, comptes utilisateurs et gestion des utilisateurs, modèles (pour rendre des pages Web à l'aide de données), journalisation et gestion des erreurs, téléchargement de fichiers, etc. Mais, comme pour Python en général, la facilité d’utilisation de Django se fait au prix de performances relativement lentes. Cependant, le support de la syntaxe asynchrone par Django permet de penser que les performances de certaines opérations seront meilleures. Par exemple, l’async pourrait réduire la latence du traitement de plusieurs requêtes simultanées.

Plusieurs autres fonctionnalités nouvelles de Django 3 bénéficient d’améliorations incrémentales. C’est le cas par exemple de la prise en charge de MariaDB 10.1 et au-delà et de la suppression des API utilisées pour la rétrocompatibilité avec Python 2 (dont la fin de support est proche), pour ne citer que celles-là.