Comment définir les champs obligatoires dans Pydantic

Comment Definir Les Champs Obligatoires Dans Pydantic



Un champ obligatoire est un champ qui doit être présent dans le modèle de données. Ces champs sont essentiels et ne peuvent pas être laissés vides, car ils sont nécessaires au bon fonctionnement ou à la réalisation d'un processus. Si un champ obligatoire ne reçoit pas de valeur, Pydantic déclenchera une exception ValueError. Les champs peuvent être définis comme champs obligatoires de différentes manières. Cependant, Pydantic définit tous les champs du modèle de données « obligatoires » par défaut. Cet article montrera comment définir les champs obligatoires dans Pydantic. Nous aborderons également quelques bons conseils pour utiliser les champs obligatoires.

Avantages de l'utilisation des champs obligatoires

Il y a plusieurs avantages à utiliser les champs obligatoires dans Pydantic.

  • Garantir l’exhaustivité des données : Les champs obligatoires nous aident à garantir que nos modèles de données sont complets et valides. Cela peut aider à éviter les erreurs dans votre code et dans le traitement des données.
  • Prévention des entrées malveillantes : Les champs obligatoires peuvent également être utilisés pour empêcher des utilisateurs malveillants d'injecter des données non valides dans votre système.
  • Rendre le code plus lisible : Vous pouvez améliorer la lisibilité ainsi que la compréhension de votre code en utilisant les champs obligatoires.

Comment définir les champs obligatoires dans Pydantic

Dans Pydantic, il existe trois méthodes pour définir un champ comme champ obligatoire. Explorons chacun d’eux en détail.







Utiliser des annotations

Le moyen le plus simple de définir un champ obligatoire dans Pydantic consiste à utiliser des annotations. À l'aide d'annotations, un type de métadonnées syntaxiques, vous pouvez ajouter plus de détails sur les variables et les attributs des classes. Dans Pydantic, les annotations sont utilisées pour indiquer le type de données attendu d'un champ et, par défaut, tous les champs annotés sont considérés comme obligatoires jusqu'à ce que vous rendiez un ou plusieurs champs facultatifs.



depuis pydantique importer Modèle de base

classe Personne ( Modèle de base ) :

nom et prénom: str

hauteur: flotter

e-mail : str

Dans cet exemple, full_name, height et email sont tous des champs obligatoires. Si vous créez une instance de la classe Person sans fournir de valeurs pour ces champs, Pydantic générera une ValidationError indiquant que les champs obligatoires sont manquants.



essayer :

personne_données = {

'hauteur' : 5.8 ,

}

personne = Personne ( **person_data )

sauf ValeurErreur comme C'est:

imprimer ( C'est )





Dans cet exemple, le champ full_name est manquant, ainsi que le champ height. Ces deux champs sont obligatoires et ValidationError fournit des informations claires sur les champs manquants.

Utiliser des points de suspension (…)

Une autre façon de déclarer un champ comme requis dans Pydantic consiste à utiliser les points de suspension ( ). Il s'agit d'une approche explicite fournie par Pydantic, pour marquer un champ comme requis.



depuis pydantique importer Modèle de base

classe Produit ( Modèle de base ) :

nom: str = ...

prix : flotter = ...

description : str = ...

Dans cet exemple, les champs nom, prix et description sont tous définis comme requis à l'aide des points de suspension. Cette méthode rend explicite et visible que des champs particuliers ne peuvent pas être ignorés lors de la création d'une instance de la classe Product.

essayer :

données du produit = {

'nom' : 'Téléphone mobile' ,

'description' : 'Téléphone intelligent avec 16 Go de RAM' ,

}

produit = Produit ( **données du produit )

sauf ValeurErreur comme C'est:

imprimer ( C'est )


Dans cet exemple, le champ price est manquant et ValidationError indique clairement le champ obligatoire manquant.

Utilisation de la fonction de champ

La fonction Field du module Pydantic fournit des fonctionnalités supplémentaires pour personnaliser la validation des champs et les métadonnées. Vous pouvez utiliser la fonction Field pour déclarer les champs obligatoires et appliquer des règles de validation supplémentaires.

Voici comment définir les champs obligatoires à l’aide de la fonction Champ :

depuis pydantique importer Modèle de base , Champ

classe Adresse ( Modèle de base ) :

rue: str = Champ ( ... , description = 'Adresse de la rue' )

ville: str = Champ ( ... )

code postal: str = Champ ( ... )

Dans cet exemple, nous utilisons la fonction Field pour définir les champs obligatoires street, city et zip_code, ainsi que des règles de validation et des descriptions supplémentaires. Les points de suspension «…» indiquent que ces champs doivent être définis comme champs obligatoires.

essayer :

adresse_données = {

'rue' : '111, rue principale' ,

'code postal' : '123456'

}

adresse = Adresse ( **données_adresse )

sauf ValeurErreur comme C'est:

imprimer ( C'est )

Dans cet exemple, le champ city est manquant et ValidationError fournit des informations sur le champ obligatoire manquant.

Les champs obligatoires peuvent être validés à l'aide d'autres fonctionnalités de Pydantic, telles que les contraintes et les types. Par exemple, vous pouvez spécifier qu'un champ de nom doit être une chaîne d'au moins 5 caractères. Vous pouvez utiliser le décorateur de champs pour personnaliser le comportement des champs obligatoires. Par exemple, vous pouvez spécifier une valeur par défaut pour le champ ou un message à afficher si le champ ne reçoit aucune valeur.

Utilisation de plusieurs méthodes pour définir les champs obligatoires dans un seul modèle Pydantic

Vous pouvez utiliser plusieurs méthodes pour définir les champs obligatoires dans un seul modèle Pydantic. Par exemple, vous pouvez utiliser des annotations pour certains champs, des points de suspension ( ) pour d'autres, et la fonction Field pour une personnalisation supplémentaire. Pydantic vous permet de choisir la meilleure approche pour votre organisation de code et vos préférences de lisibilité. Prenons l'exemple suivant :

depuis pydantique importer Modèle de base , Champ

classe Employé ( Modèle de base ) :

nom: str

département: str =

salaire: flotter = Champ ( )

Dans cet exemple, tous les champs doivent être utilisés. Nous avons utilisé trois méthodes différentes pour définir les champs obligatoires. Le champ de nom utilise l'annotation, le service utilise les points de suspension et le salaire utilise la fonction Champ.

Conseils pour utiliser les champs obligatoires

Suivre quelques bonnes pratiques lors de la définition des champs obligatoires dans Pydantic est essentiel pour créer un code fluide et maintenable. Les conseils suivants vous aideront à définir les champs obligatoires dans Pydantic :

  1. Utilisez des noms de champs clairs et descriptifs : Choisissez des noms significatifs pour vos champs qui indiquent clairement leur objectif. Cela aide les autres développeurs à savoir quelles données sont nécessaires et réduit les risques de manquer des champs obligatoires.
  2. Fournir des descriptions de champs informatives : Lorsque vous utilisez la fonction Champ pour définir les champs obligatoires, fournissez des descriptions descriptives qui expliquent l'objectif et le format attendu des données.
  3. Champs associés au groupe : Si votre modèle de données comporte un grand nombre de champs, envisagez de regrouper les champs associés dans des structures imbriquées. Cela peut aider votre code à être plus lisible et faciliter la gestion des champs obligatoires.
  4. Utilisez des messages personnalisés pour les champs obligatoires : Par défaut, Pydantic déclenchera une exception ValueError si un champ obligatoire ne reçoit pas de valeur. Vous pouvez personnaliser le message d'erreur en spécifiant l'argument message au décorateur de champ.

Conclusion

Pydantic, par défaut, crée les champs selon les besoins. Cependant, vous pouvez définir explicitement le champ comme champ obligatoire. En déclarant les champs comme requis, vous vous assurez que vos modèles de données sont précis, complets et alignés sur vos exigences. Dans cet article, nous avons couvert trois méthodes distinctes pour définir les champs obligatoires dans Pydantic, à savoir les annotations, les points de suspension (…) et la fonction Field. De plus, nous avons examiné certaines pratiques recommandées pour l'utilisation des champs obligatoires afin que vous puissiez spécifier efficacement les champs dans votre modèle de données.