Hoe u de vereiste velden in Pydantic definieert

Hoe U De Vereiste Velden In Pydantic Definieert



Een verplicht veld is een veld dat aanwezig moet zijn in het datamodel. Deze velden zijn essentieel en mogen niet leeg worden gelaten, omdat ze nodig zijn om goed te functioneren of een proces te voltooien. Als een verplicht veld geen waarde krijgt, genereert Pydantic een ValueError-uitzondering. Velden kunnen op verschillende manieren worden gedefinieerd als verplichte velden. Pydantic stelt echter standaard alle datamodelvelden in op “vereist”. Dit artikel laat zien hoe u verplichte velden in Pydantic definieert. Ook bespreken we enkele goede tips voor het gebruik van de verplichte velden.

Voordelen van het gebruik van verplichte velden

Er zijn verschillende voordelen verbonden aan het gebruik van de verplichte velden in Pydantic.

  • Zorgen voor de volledigheid van gegevens: Verplichte velden helpen ons ervoor te zorgen dat onze datamodellen compleet en geldig zijn. Dit kan fouten in uw code en gegevensverwerking helpen voorkomen.
  • Kwaadwillige invoer voorkomen: Verplichte velden kunnen ook worden gebruikt om te voorkomen dat kwaadwillende gebruikers ongeldige gegevens in uw systeem injecteren.
  • Code leesbaarder maken: U kunt de leesbaarheid en het begrip van uw code verbeteren door de vereiste velden te gebruiken.

Hoe u de vereiste velden in Pydantic definieert

In Pydantic zijn er drie methoden om een ​​veld als verplicht veld te definiëren. Laten we ze allemaal in detail verkennen.







Annotaties gebruiken

De eenvoudigste manier om een ​​verplicht veld in Pydantic te definiëren is door gebruik te maken van annotaties. Met behulp van annotaties, een soort syntactische metagegevens, kunt u meer details toevoegen over variabelen en attributen van klassen. In Pydantic worden annotaties gebruikt om het verwachte gegevenstype van een veld aan te geven. Standaard worden alle geannoteerde velden als vereist beschouwd totdat je een veld of velden optioneel maakt.



van pydantisch importeren Basismodel

klas Persoon ( Basismodel ) :

voor-en achternaam: str

hoogte: vlot

e-mail : str

In dit voorbeeld zijn volledige_naam, hoogte en e-mailadres allemaal verplichte velden. Als u een exemplaar van de klasse Person maakt zonder waarden voor deze velden op te geven, zal Pydantic een ValidationError genereren die aangeeft dat de vereiste velden ontbreken.



poging :

persoonsgegevens = {

'hoogte' : 5.8 ,

}

persoon = Persoon ( **persoongegevens )

behalve Waardefout als Het is:

afdrukken ( Het is )





In dit voorbeeld ontbreekt het veld volledige_naam en het hoogteveld ook. Beide velden zijn verplicht en de ValidationError biedt duidelijke informatie over de ontbrekende velden.

Beletseltekens gebruiken (...)

Een andere manier om een ​​veld te declareren zoals vereist in Pydantic is door het weglatingsteken ( ). Dit is een expliciete aanpak van Pydantic om een ​​veld naar behoefte te markeren.



van pydantisch importeren Basismodel

klas Product ( Basismodel ) :

naam: str = ...

prijs : vlot = ...

beschrijving : str = ...

In dit voorbeeld zijn de veldennaam, prijs en beschrijving allemaal zoals vereist gedefinieerd met behulp van het weglatingsteken. Deze methode maakt expliciet en zichtbaar dat bepaalde velden niet kunnen worden overgeslagen bij het maken van een exemplaar van de klasse Product.

poging :

productgegevens = {

'naam' : 'Mobiele telefoon' ,

'beschrijving' : 'Smartphone met 16Gb RAM' ,

}

Product = Product ( **productgegevens )

behalve Waardefout als Het is:

afdrukken ( Het is )


In dit voorbeeld ontbreekt het prijsveld en geeft ValidationError duidelijk het ontbrekende vereiste veld aan.

De veldfunctie gebruiken

De Veldfunctie uit de Pydantic-module biedt extra mogelijkheden voor het aanpassen van veldvalidatie en metadata. U kunt de functie Veld gebruiken om verplichte velden te declareren en aanvullende validatieregels toe te passen.

Zo kunt u verplichte velden definiëren met de functie Veld:

van pydantisch importeren Basismodel , Veld

klas Adres ( Basismodel ) :

straat: str = Veld ( ... , beschrijving = 'Adres' )

stad: str = Veld ( ... )

postcode: str = Veld ( ... )

In dit voorbeeld gebruiken we de functie Veld om de vereiste velden straat, stad en postcode te definiëren, samen met aanvullende validatieregels en beschrijvingen. Het weglatingsteken “...” geeft aan dat deze velden moeten worden gedefinieerd als verplichte velden.

poging :

adresgegevens = {

'straat' : 'Hoofdstraat 111' ,

'postcode' : '123456'

}

adres = Adres ( **adresgegevens )

behalve Waardefout als Het is:

afdrukken ( Het is )

In dit voorbeeld ontbreekt het stadsveld en geeft ValidationError informatie over het ontbrekende verplichte veld.

Verplichte velden kunnen worden gevalideerd met behulp van andere Pydantic-functies, zoals beperkingen en typen. U kunt bijvoorbeeld opgeven dat een naamveld een string van minimaal 5 tekens moet zijn. U kunt de Velddecorateur gebruiken om het gedrag van verplichte velden aan te passen. U kunt bijvoorbeeld een standaardwaarde voor het veld opgeven of een bericht opgeven dat moet worden weergegeven als het veld geen waarde krijgt.

Meerdere methoden gebruiken om vereiste velden in één enkel Pydantic-model te definiëren

U kunt meerdere methoden gebruiken om verplichte velden te definiëren binnen één enkel Pydantic-model. U kunt bijvoorbeeld voor sommige velden annotaties gebruiken, ellips ( ) voor anderen, en de veldfunctie voor extra aanpassingen. Met Pydantic kunt u de beste aanpak kiezen voor uw code-organisatie en leesbaarheidsvoorkeuren. Beschouw het volgende voorbeeld:

van pydantisch importeren Basismodel , Veld

klas Medewerker ( Basismodel ) :

naam: str

afdeling: str =

salaris: vlot = Veld ( )

In dit voorbeeld moeten alle velden worden gebruikt. We hebben drie verschillende methoden gebruikt om de vereiste velden te definiëren. Het naamveld gebruikt de annotatie, de afdeling gebruikt het weglatingsteken en het salaris gebruikt de veldfunctie.

Tips voor het gebruik van verplichte velden

Het volgen van enkele goede praktijken bij het definiëren van de vereiste velden in Pydantic is essentieel om soepele en onderhoudbare code te creëren. De volgende tips helpen u bij het definiëren van de verplichte velden in Pydantic:

  1. Gebruik duidelijke en beschrijvende veldnamen : Kies betekenisvolle namen voor uw velden die duidelijk hun doel aangeven. Hierdoor weten andere ontwikkelaars welke gegevens nodig zijn en wordt de kans kleiner dat verplichte velden ontbreken.
  2. Geef informatieve veldbeschrijvingen : Wanneer u de functie Veld gebruikt om verplichte velden te definiëren, geef dan beschrijvende beschrijvingen die het doel en de verwachte indeling van de gegevens uitleggen.
  3. Groepsgerelateerde velden : Als uw gegevensmodel een groot aantal velden bevat, kunt u overwegen gerelateerde velden in geneste structuren te groeperen. Hierdoor wordt uw code beter leesbaar en wordt het beheren van verplichte velden eenvoudiger.
  4. Gebruik aangepaste berichten voor verplichte velden: Standaard genereert Pydantic een ValueError-uitzondering als een verplicht veld geen waarde krijgt. U kunt de foutmelding aanpassen door het berichtargument aan de velddecorateur op te geven.

Conclusie

Pydantic maakt de velden standaard zoals vereist. U kunt het veld echter expliciet definiëren als verplichte velden. Door velden naar behoefte te declareren, zorgt u ervoor dat uw gegevensmodellen accuraat, volledig en afgestemd zijn op uw vereisten. In dit bericht hebben we drie verschillende methoden besproken voor het definiëren van de vereiste velden in Pydantic, dat wil zeggen annotaties, de ellips (...) en de veldfunctie. Daarnaast hebben we gekeken naar enkele aanbevolen werkwijzen voor het gebruik van verplichte velden, zodat u effectief velden in uw gegevensmodel kunt specificeren.