Crédit : Photo 208727123 © mariavonotna|Dreamstime.com
Django, le framework web Python avec toutes les batteries incluses, est sur le point de sa cinquième version significative. Voici un aperçu de 5 grandes nouvelles fonctions de Django 5 dont vous pourrez profiter, dans les tâches Django existantes et nouvelles.
Principales 5 nouvelles fonctions de Django 5
- Formulaire les champs sont plus faciles à restituer
- Champs modèles pour les calculs et les colonnes générées
- Les choix de champs sont plus faciles à écrire
- Plus de décorateurs de vue asynchrone
- Gestion des exceptions pour les détachements asynchrones
1. Les champs de type sont plus faciles à afficher
Les champs de type dans Django comportent de nombreux éléments : une étiquette descriptive, un texte d’assistance, une étiquette d’erreur et le champ lui-même. Si vous avez un type avec plusieurs champs de ce type, les disposer manuellement peut devenir fastidieux.
Pour résoudre ce problème, Django 5 propose une nouvelle technique de groupe de champs pour les champs de type. Lorsqu’il est utilisé dans un modèle, le . as_field_group
restitue instantanément tous les éléments du groupe de champs, selon un modèle que vous pouvez personnaliser.
Avec les groupes de champs, vous pouvez restituer tout cela :
classe div ="helptext " id =" _ helptext " form.username.help _ text/ div
… comme simplement ceci :
form.name.as _ field_group
Encore une fois, la discussion est personnalisable : vous pouvez remplacer le modèle de conception par défaut pour les groupes de champs à l’échelle de l’application, ou vous pouvez le personnaliser par champ ou même par requête.
2. Champs de modèle pour les calculs et les colonnes générées
Les colonnes calculées dans les bases de données vous permettent de spécifier la valeur de la colonne comme résultat d’une formule, qui est calculée sur la base de données avant d’être envoyée au client.
Django 5 vous permet désormais de spécifier des champs dans les conceptions avec un paramètre par défaut de base de données, ce qui vous permet de fournir une valeur par défaut calculée par la base de données. Par exemple, un DateTimeField
pourrait utiliser Now()
par défaut.
Notez que db_default
ne peut être défini que sur quelque chose qui est le résultat d’une combinaison de littéraux et de fonctions de base de données prises en charge.
Un autre ajout pratique de Django 5.0 dans cette veine est GeneratedField – un tout nouveau type de champ dont la valeur est constamment produite à partir des valeurs d’autres champs. . Les résultats peuvent soit être conservés dans la base de données lorsque la ligne est composée ou mise à jour (un champ » stocké « ), soit calculés uniquement lorsque la ligne est lue (un champ » virtuel « ).
Notez que GeneratedField
ne peuvent utiliser que d’autres champs exactement dans la même conception que les entrées. Vous ne pouvez pas non plus utiliser d’autres champs générés comme source, uniquement des champs réels.
3. Les choix de champs sont beaucoup plus faciles à composer
Dans les versions précédentes de Django, lorsque l’on souhaitait noter les choix proposés à Field.choices
et ChoiceField.choices
objets, vous deviez construire un arrangement disgracieux de 2 tuples ou de sous-classes Enumeration
:
HQ_LOCATIONS = [( "United States ", [( "New York City ", "New york city "), (" la ", " Los Angeles ")], (" Japon ", [( " tokyo ", " Tokyo "), (" osaka ", " Osaka ")], (" virtuel ", " Anywhere "),]
Avec Django 5, vous pouvez utiliser une déclaration beaucoup plus succincte en utilisant des mappages de dictionnaire :
HQ_LOCATIONS = "United States ": "nyc ": "New york city", "la ": "Los Angeles ", "Japon ": , "virtual ": "Anywhere ",
Cela rend les choix beaucoup plus faciles à encoder sous forme de littéraux, et un peu plus faciles à produire par programme également.
p>
4. De nombreux autres concepteurs de vues asynchrones
Django a inclus sa toute première assistance pour les mécanismes asynchrones de Python dans la version 3.0, mais toutes les parties de Django n’ont pas bénéficié du support asynchrone dès le début. Il a été inclus dans les couches, avec la prise en charge des vues asynchrones incluses dans la version 4.0, et la prise en charge de l’ORM sera disponible dans une prochaine version.
En raison du fait que Django a ajouté lentement l’assistance asynchrone, de nombreux concepteurs ne l’ont pas fait auparavant. ne prend pas en charge l’encapsulation des vues asynchrones. Cela change avec la variante 5, dans laquelle beaucoup plus de décorateurs peuvent désormais encapsuler des vues asynchrones. Parmi les plus utiles figurent ceux qui garantissent la défense CSRF (cross-site demand forgery) contre les vues.
5. Gestion des exceptions pour les déconnexions asynchrones
Avec les connexions asynchrones, il existe constamment le risque qu’une connexion de longue date soit fermée dans le passé. Django renvoie une réponse. Auparavant, il n’existait aucun système intégré pour gérer le nettoyage lorsqu’une connexion asynchrone était annulée. Django 5 déclenche une exception appropriée, asyncio.CancelledError
, que vous pouvez intercepter si nécessaire.
Toute l’actualité en temps réel, est sur L’Entrepreneur