Django 4.1, la dernière version du plus important framework Web basé sur Python, s’enrichit de plusieurs fonctionnalités, en particulier de gestionnaires ou « handlers » asynchrones et d’une interface ORM (Object-relational mapping). Cependant, certaines modifications sont incompatibles avec les versions précédentes. Dévoilé le 3 août, Django 4.1 est accessible depuis le site web du projet Django. Cette version introduit des gestionnaires asynchrones pour les vues basées sur des classes ; les sous-classes d'affichage peuvent désormais définir des gestionnaires de méthodes HTTP asynchrones, conformément aux notes de publication.

Concernant le mapping objet-relationnel asynchrone, QuerySet fournit désormais une interface asynchrone pour toutes les opérations d'accès aux données. La nouvelle interface permet aux développeurs d'écrire du code asynchrone sans avoir à écrire des opérations ORM dans sync_to_async(). Pour l’instant, les opérations de base de données sous-jacentes restent synchrones. Django 4.1 supporte Python 3.8, Python 3.9 et Python 3.10, mais uniquement la dernière version de chaque série.

 Les autres évolutions

Les autres apports de Django 4.1 sont :

- Les contraintes de vérification, d'unicité et d'exclusion définies dans l'option Meta.constraints sont désormais cochées lors de la validation du modèle.

- De nouveaux modèles de formulaires basés sur

 

sont disponibles pour aider les utilisateurs disposant de lecteurs d'écran et d'autres technologies d'assistance.

- Un paramètre transitoire CSRF_COOKIE_MASKED permet aux développeurs de spécifier s'il faut masquer le cookie CSRF (Cross Site Request Forgery).

- Un paramètre SECRET_KEY_FALLBACKS permet de fournir une liste de valeurs pour la validation des clés secrètes.

- Pour les modèles, l'attribut id de l'élément HTML