Passer au contenu principal

Introduction

  • Cet article vous guide dans la validation de données avec pydantic. Pydantic est une bibliothèque Python écrite en Rust.
  • 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.
pip install pydantic

Créer un modèle

  • Tout d’abord, nous devons importer et faire hériter notre classe de pydantic.BaseModel pour commencer la validation. Dans notre exemple, nous allons créer une classe nommée Person qui aura un nom, un âge et un e-mail.
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int
    email: str
  • Avec cette classe, lorsque nous l’instancions, pydantic vérifiera que les paramètres name et email sont des chaînes de caractères et que age est 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.
data = {
    "name": "John",
    "age": 19,
    "email": "john@gmail.com"
}
person = Person(**data)
  • L’exemple ci-dessus ne déclenchera aucune erreur puisque tous les paramètres sont du bon type. Nous allons maintenant fournir des données incorrectes pour confirmer que notre validation fonctionne.
data = {
    "name": "John",
    "age": "19",
    "email": "john@gmail.com"
}
person = Person(**data)
  • Dans l’exemple ci-dessus, l’erreur ValidationError sera déclenchée car age doit être un entier et ne peut pas être fourni sous forme de chaîne de caractères.

Créer une dataclass

  • Vous pouvez également créer des dataclasses avec pydantic, qui seront similaires aux dataclasses standard de Python mais bénéficieront de validations comme BaseModel.
from pydantic import dataclass

@dataclass
class Person:
    name: str
    age: int
    email: str
  • Si nous envoyons une string à age, elle sera convertie en int.
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], il vérifiera chaque élément de la liste et le convertira 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, vous devez exécuter les commandes suivantes :
pip install pydantic[email]
pip install pydantic[timezone]
  • Vous pouvez installer les deux ensemble en exécutant la commande suivante.
pip install pydantic[email,timezone]
  • Pydantic[email] apporte une classe pour gérer les e-mails, en les normalisant et en validant le format user@domain.tld. Pour cela, pydantic fournit la classe EmailStr afin d’effectuer cette validation.
from pydantic import dataclass, EmailStr

@dataclass
class Person:
    name: str
    age: int
    email: EmailStr

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 ! Laissez votre avis ! 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.