Introduction
- Cet article vous guide dans la validation de données avec pydantic, une bibliothèque Python dont le cœur de validation (
pydantic-core) est écrit en Rust. Les exemples utilisent pydantic v2. - Avant de commencer, assurez-vous d’avoir Python et la bibliothèque pydantic installés dans votre environnement. Consultez la commande d’installation de pydantic ci-dessous.
Créer un modèle
- Tout d’abord, nous devons importer et faire hériter notre classe de
pydantic.BaseModelpour commencer la validation. Dans notre exemple, nous allons créer une classe nomméePersonqui aura un nom, un âge et un e-mail.
- Avec cette classe, lorsque nous l’instancions, pydantic vérifiera que
nameetemailsont des chaînes de caractères et queageest un entier.
Utiliser le modèle
- Maintenant que nous l’avons créée, nous allons instancier la classe. Nous allons créer un dict contenant les données et le décompacter dans notre classe.
- L’exemple ci-dessus ne déclenchera aucune erreur puisque tous les champs sont du bon type. Par défaut, pydantic convertit aussi les valeurs compatibles : si
ageest la chaîne"19", elle devient l’entier19. Nous allons maintenant fournir des données incorrectes pour confirmer que notre validation fonctionne.
- L’exemple ci-dessus déclenche une
ValidationErrorcaragedoit être un entier et"nineteen"ne peut pas être converti en entier :
- Pour gérer l’erreur au lieu de laisser votre programme s’arrêter, interceptez-la avec
try/except. Sa méthodeerrors()liste chaque champ invalide :
Mode strict
- Si vous voulez aussi rejeter les chaînes comme
"19", activez le mode strict dans le modèle.agen’accepte alors qu’un vraiint, etPerson(name="John", age="19", email="john@example.com")déclencheValidationError.
Créer une dataclass
- Vous pouvez également créer des dataclasses avec pydantic. Elles sont similaires aux dataclasses standard de Python, mais valident leurs champs comme
BaseModel.
- Si nous envoyons la chaîne
"19"àage, elle sera convertie enint19.
Pydantic prend en charge la validation récursive, ce qui signifie que lors de la validation de modèles imbriqués, il valide également les
modèles internes.Si une classe possède une liste de
Person, people: list[Person], pydantic vérifie chaque élément de la liste et le convertit en Person.Extras
- Pydantic propose quelques extras, comme la validation des e-mails et un paquet de repli pour les fuseaux horaires. Pour les installer, exécutez les commandes suivantes :
- Vous pouvez installer les deux ensemble en exécutant la commande suivante.
pydantic[email]ajoute le typeEmailStr, qui valide le formatuser@domain.tldet normalise l’adresse.
Valider les variables d’environnement au démarrage
- Les bots et les API lisent leurs tokens et leurs paramètres depuis des variables d’environnement. Avec
pydantic-settings, une variable manquante ou invalide arrête l’application au démarrage avec une erreur claire, au lieu d’échouer plus tard en pleine requête.
- Déclarez les variables dont votre application a besoin dans une classe qui hérite de
BaseSettings. Chaque champ lit la variable d’environnement du même nom, sans tenir compte de la casse :discord_tokenlitDISCORD_TOKEN.
settings.py
- Si
DISCORD_TOKENn’est pas définie,Settings()déclenche uneValidationErrorpourdiscord_tokenavec le messageField required. Une valeur commePORT=abcéchoue de la même façon, carportdoit être un entier. SecretStrmasque le token lorsque vous affichez ou journalisez les paramètres. Lisez la vraie valeur avecsettings.discord_token.get_secret_value().- Sur Square Cloud, définissez les variables dans le tableau de bord ou avec
squarecloud app env set, et listezpydantic-settingsdans votrerequirements.txt. Consultez Variables d’environnement.
Prochaines étapes
Variables d'environnement
Définissez les variables que lit votre classe de paramètres.
FastAPI
Déployez une API qui valide ses requêtes avec pydantic.
Bot Discord
Hébergez un bot qui lit son token depuis l’environnement.
Avez-vous aimé cet article ?
- Nous avons créé ce contenu avec le plus grand soin afin d’offrir la meilleure aide possible. Si cet article vous a aidé d’une quelconque manière, soutenez notre travail ! Les développeurs ont déjà noté Square Cloud 4,9/5 sur 402 avis sur Google et Trustpilot, laissez le vôtre aussi ! Cela nous aide à comprendre ce qui compte le plus pour vous.
Google Reviews
Laissez votre avis sur Google Reviews.
Trustpilot
Laissez votre avis sur Trustpilot.

