Sådan defineres påkrævede felter i Pydantic

Sadan Defineres Pakraevede Felter I Pydantic



Et obligatorisk felt er et felt, der skal være til stede i datamodellen. Disse felter er vigtige og kan ikke efterlades tomme, da de er nødvendige for at fungere korrekt eller fuldføre en proces. Hvis et påkrævet felt ikke er givet en værdi, vil Pydantic rejse en ValueError-undtagelse. Felter kan defineres som obligatoriske felter på en række forskellige måder. Pydantic sætter dog alle datamodelfelter 'påkrævet' som standard. Denne artikel vil demonstrere, hvordan man definerer obligatoriske felter i Pydantic. Vi vil også diskutere nogle gode tips til at bruge de obligatoriske felter.

Fordele ved at bruge påkrævede felter

Der er flere fordele ved at bruge de obligatoriske felter i Pydantic.

  • Sikring af data fuldstændighed: Påkrævede felter hjælper os med at sikre, at vores datamodeller er komplette og gyldige. Dette kan hjælpe med at forhindre fejl i din kode og databehandling.
  • Forebyggelse af ondsindet input: Påkrævede felter kan også bruges til at forhindre ondsindede brugere i at injicere ugyldige data i dit system.
  • Gør koden mere læsbar: Du kan forbedre læsbarheden samt forståelsen af ​​din kode ved at bruge de påkrævede felter.

Sådan defineres påkrævede felter i Pydantic

I Pydantic er der tre metoder til at definere et felt som et obligatorisk felt. Lad os udforske hver af dem i detaljer.







Brug af anmærkninger

Den enkleste måde at definere et påkrævet felt i Pydantic er ved at bruge annoteringer. Ved hjælp af annoteringer, en type syntaktiske metadata, kan du tilføje flere detaljer om variabler og attributter for klasser. I Pydantic bruges annoteringer til at angive den forventede datatype for et felt, og som standard anses alle annoterede felter for at være nødvendige, indtil du gør et eller flere felter valgfrie.



fra pydantisk importere Basismodel

klasse Person ( Basismodel ) :

fulde navn: str

højde: flyde

e-mail : str

I dette eksempel er fuldt_navn, højde og e-mail alle obligatoriske felter. Hvis du opretter en forekomst af Person-klassen uden at angive værdier for disse felter, vil Pydantic rejse en ValidationError, der indikerer, at de påkrævede felter mangler.



prøve :

person_data = {

'højde' : 5.8 ,

}

person = Person ( **person_data )

undtagen ValueError som Det er:

Print ( det er )





I dette eksempel mangler feltet fuld_navn, og højdefeltet mangler også. Begge disse felter er obligatoriske, og ValidationError giver klare oplysninger om de manglende felter.

Brug af Ellipsis (...)

En anden måde at erklære et felt som påkrævet i Pydantic er ved at bruge ellipsen ( ). Dette er en eksplicit tilgang fra Pydantic til at markere et felt som påkrævet.



fra pydantisk importere Basismodel

klasse Produkt ( Basismodel ) :

navn: str = ...

pris : flyde = ...

beskrivelse : str = ...

I dette eksempel er felterne navn, pris og beskrivelse alle defineret efter behov ved hjælp af ellipsen. Denne metode gør det eksplicit og synligt, at bestemte felter ikke kan springes over, når du opretter en forekomst af klassen Produkt.

prøve :

produktdata = {

'navn' : 'Mobiltelefon' ,

'beskrivelse' : 'Smarttelefon med 16 Gb RAM' ,

}

produkt = Produkt ( **produktdata )

undtagen ValueError som Det er:

Print ( det er )


I dette eksempel mangler prisfeltet, og ValidationError angiver tydeligt det manglende obligatoriske felt.

Brug af feltfunktionen

Feltfunktionen fra Pydantic-modulet giver yderligere muligheder for at tilpasse feltvalidering og metadata. Du kan bruge feltfunktionen til at angive obligatoriske felter og anvende yderligere valideringsregler.

Sådan kan du definere obligatoriske felter ved hjælp af feltfunktionen:

fra pydantisk importere Basismodel , Mark

klasse Adresse ( Basismodel ) :

gade: str = Mark ( ... , beskrivelse = 'Vejnavn' )

by: str = Mark ( ... )

postnummer: str = Mark ( ... )

I dette eksempel bruger vi feltfunktionen til at definere obligatoriske felter gade, by og postnummer sammen med yderligere valideringsregler og beskrivelser. Ellipsen '...' angiver, at disse felter skal defineres som obligatoriske felter.

prøve :

adresse_data = {

'gade' : '111 Main Street' ,

'postnummer' : '123456'

}

adresse = Adresse ( **adresse_data )

undtagen ValueError som Det er:

Print ( det er )

I dette eksempel mangler byfeltet, og ValidationError giver oplysninger om det manglende obligatoriske felt.

Påkrævede felter kan valideres ved hjælp af andre Pydantiske funktioner, såsom begrænsninger og typer. For eksempel kan du angive, at et navnefelt skal være en streng på mindst 5 tegn. Du kan bruge feltdekoratoren til at tilpasse adfærden af ​​påkrævede felter. For eksempel kan du angive en standardværdi for feltet eller en meddelelse, der skal vises, hvis feltet ikke har en værdi.

Brug af flere metoder til at definere påkrævede felter i en enkelt Pydantisk model

Du kan bruge flere metoder til at definere påkrævede felter inden for en enkelt Pydantisk model. For eksempel kan du bruge annoteringer til nogle felter, ellipse ( ) for andre, og Field-funktionen for yderligere tilpasning. Pydantic giver dig mulighed for at vælge den bedste tilgang til din kodeorganisation og præferencer for læsbarhed. Overvej følgende eksempel:

fra pydantisk importere Basismodel , Mark

klasse Medarbejder ( Basismodel ) :

navn: str

afdeling: str =

løn: flyde = Mark ( )

I dette eksempel skal alle felter bruges. Vi har brugt tre forskellige metoder til at definere de obligatoriske felter. Navnefeltet bruger annotationen, afdelingen bruger ellipsen, og løn bruger funktionen Felt.

Tips til brug af påkrævede felter

Det er vigtigt at følge nogle gode praksis, når du definerer de obligatoriske felter i Pydantic, for at skabe en smidig og vedligeholdelig kode. Følgende tips hjælper dig med at definere de obligatoriske felter i Pydantic:

  1. Brug klare og beskrivende feltnavne : Vælg meningsfulde navne til dine felter, der tydeligt angiver deres formål. Dette hjælper andre udviklere med at vide, hvilke data der er nødvendige, og reducerer chancerne for at mangle obligatoriske felter.
  2. Angiv informative feltbeskrivelser : Når du bruger funktionen Felt til at definere påkrævede felter, skal du angive beskrivende beskrivelser, der forklarer formålet og det forventede format for dataene.
  3. Grupperelaterede felter : Hvis din datamodel har et stort antal felter, kan du overveje at gruppere relaterede felter i indlejrede strukturer. Dette kan hjælpe din kode til at blive mere læsbar og gøre det nemmere at administrere påkrævede felter.
  4. Brug tilpassede meddelelser til obligatoriske felter: Som standard vil Pydantic rejse en ValueError-undtagelse, hvis et påkrævet felt ikke får en værdi. Du kan tilpasse fejlmeddelelsen ved at angive meddelelsesargumentet til Field-dekoratøren.

Konklusion

Pydantic laver som standard felterne efter behov. Du kan dog udtrykkeligt definere feltet som obligatoriske felter. Ved at angive felter som påkrævet sikrer du, at dine datamodeller er nøjagtige, fuldstændige og tilpasset dine krav. I dette indlæg dækkede vi tre forskellige metoder til at definere de påkrævede felter i Pydantic, dvs. annoteringer, ellipsen (...) og feltfunktionen. Derudover har vi set på nogle anbefalede fremgangsmåder for brug af obligatoriske felter, så du effektivt kan angive felter i din datamodel.