Hur man definierar obligatoriska fält i Pydantic

Hur Man Definierar Obligatoriska Falt I Pydantic



Ett obligatoriskt fält är ett fält som måste finnas i datamodellen. Dessa fält är viktiga och kan inte lämnas tomma, eftersom de behövs för att fungera korrekt eller slutföra en process. Om ett obligatoriskt fält inte ges ett värde, kommer Pydantic att skapa ett ValueError-undantag. Fält kan definieras som obligatoriska fält på en mängd olika sätt. Pydantic ställer dock in alla datamodellfält 'obligatoriska' som standard. Den här artikeln kommer att visa hur man definierar obligatoriska fält i Pydantic. Vi kommer också att diskutera några bra tips för att använda de obligatoriska fälten.

Fördelar med att använda obligatoriska fält

Det finns flera fördelar med att använda de obligatoriska fälten i Pydantic.

  • Säkerställa fullständig data: Obligatoriska fält hjälper oss att säkerställa att våra datamodeller är fullständiga och giltiga. Detta kan hjälpa till att förhindra fel i din kod och databehandling.
  • Förhindra skadlig inmatning: Obligatoriska fält kan också användas för att förhindra skadliga användare från att injicera ogiltiga data i ditt system.
  • Gör koden mer läsbar: Du kan förbättra läsbarheten och förståelsen av din kod genom att använda de obligatoriska fälten.

Hur man definierar obligatoriska fält i Pydantic

I Pydantic finns det tre metoder för att definiera ett fält som ett obligatoriskt fält. Låt oss utforska var och en av dem i detalj.







Använda anteckningar

Det enklaste sättet att definiera ett obligatoriskt fält i Pydantic är att använda anteckningar. Med hjälp av annoteringar, en typ av syntaktisk metadata, kan du lägga till mer information om variabler och attribut för klasser. I Pydantic används kommentarer för att indikera den förväntade datatypen för ett fält, och som standard anses alla annoterade fält vara obligatoriska tills du gör ett eller flera fält valfria.



från pydantisk importera Basmodell

klass Person ( Basmodell ) :

fullständiga namn: str

höjd: flyta

e-post : str

I det här exemplet är fullständigt_namn, höjd och e-post alla obligatoriska fält. Om du skapar en instans av klassen Person utan att ange värden för dessa fält, kommer Pydantic att visa ett ValidationError som indikerar att de obligatoriska fälten saknas.



Prova :

person_data = {

'höjd' : 5.8 ,

}

person = Person ( **person_data )

bortsett från ValueError som Det är:

skriva ut ( Det är )





I det här exemplet saknas fältet full_name, och höjdfältet saknas också. Båda dessa fält är obligatoriska och ValidationError ger tydlig information om de saknade fälten.

Använda Ellipsis (...)

Ett annat sätt att deklarera ett fält som krävs i Pydantic är att använda ellipsen ( ). Detta är ett explicit tillvägagångssätt som tillhandahålls av Pydantic, för att markera ett fält som krävs.



från pydantisk importera Basmodell

klass Produkt ( Basmodell ) :

namn: str = ...

pris : flyta = ...

beskrivning : str = ...

I det här exemplet är fälten namn, pris och beskrivning definierade som krävs med hjälp av ellipsen. Denna metod gör det explicit och synligt att vissa fält inte kan hoppa över när en instans av klassen Product skapas.

Prova :

Produktdata = {

'namn' : 'Mobiltelefon' ,

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

}

produkt = Produkt ( **Produktdata )

bortsett från ValueError som Det är:

skriva ut ( Det är )


I det här exemplet saknas prisfältet och ValidationError indikerar tydligt det obligatoriska fältet som saknas.

Använda fältfunktionen

Fältfunktionen från Pydantic-modulen ger ytterligare möjligheter för att anpassa fältvalidering och metadata. Du kan använda fältfunktionen för att deklarera obligatoriska fält och tillämpa ytterligare valideringsregler.

Så här kan du definiera obligatoriska fält med fältfunktionen:

från pydantisk importera Basmodell , Fält

klass Adress ( Basmodell ) :

gata: str = Fält ( ... , beskrivning = 'Gatuadress' )

stad: str = Fält ( ... )

postnummer: str = Fält ( ... )

I det här exemplet använder vi fältfunktionen för att definiera obligatoriska fält gata, stad och postnummer, tillsammans med ytterligare valideringsregler och beskrivningar. Ellipsen '...' indikerar att dessa fält måste definieras som obligatoriska fält.

Prova :

adressdata = {

'gata' : '111 Main Street' ,

'postnummer' : '123456'

}

adress = Adress ( **adress_data )

bortsett från ValueError som Det är:

skriva ut ( Det är )

I det här exemplet saknas stadsfältet och ValidationError ger information om det obligatoriska fältet som saknas.

Obligatoriska fält kan valideras med andra Pydantiska funktioner, såsom begränsningar och typer. Du kan till exempel ange att ett namnfält måste vara en sträng på minst 5 tecken. Du kan använda Fältdekoratorn för att anpassa beteendet för obligatoriska fält. Du kan till exempel ange ett standardvärde för fältet eller ett meddelande som ska visas om fältet inte ges ett värde.

Använda flera metoder för att definiera obligatoriska fält i en enda Pydantisk modell

Du kan använda flera metoder för att definiera obligatoriska fält inom en enda Pydantisk modell. Till exempel kan du använda kommentarer för vissa fält, ellips ( ) för andra och fältfunktionen för ytterligare anpassning. Pydantic låter dig välja det bästa tillvägagångssättet för din kodorganisation och läsbarhetspreferenser. Tänk på följande exempel:

från pydantisk importera Basmodell , Fält

klass Anställd ( Basmodell ) :

namn: str

avdelning: str =

lön: flyta = Fält ( )

I det här exemplet måste alla fält användas. Vi har använt tre olika metoder för att definiera de obligatoriska fälten. Namnfältet använder anteckningen, avdelningen använder ellipsen och lön använder fältfunktionen.

Tips för att använda obligatoriska fält

Att följa några goda rutiner när du definierar de obligatoriska fälten i Pydantic är viktigt för att skapa smidig och underhållbar kod. Följande tips hjälper dig att definiera de obligatoriska fälten i Pydantic:

  1. Använd tydliga och beskrivande fältnamn : Välj meningsfulla namn för dina fält som tydligt anger deras syfte. Detta hjälper andra utvecklare att veta vilken data som behövs och minskar chansen att missa obligatoriska fält.
  2. Ge informativa fältbeskrivningar : När du använder fältfunktionen för att definiera obligatoriska fält, tillhandahåll beskrivande beskrivningar som förklarar syftet och det förväntade formatet för data.
  3. Grupprelaterade fält : Om din datamodell har ett stort antal fält, överväg att gruppera relaterade fält i kapslade strukturer. Detta kan hjälpa din kod att bli mer läsbar och göra det lättare att hantera obligatoriska fält.
  4. Använd anpassade meddelanden för obligatoriska fält: Som standard kommer Pydantic att skapa ett ValueError-undantag om ett obligatoriskt fält inte ges ett värde. Du kan anpassa felmeddelandet genom att ange meddelandeargumentet till fältdekoratören.

Slutsats

Pydantic gör som standard fälten efter behov. Du kan dock uttryckligen definiera fältet som obligatoriska fält. Genom att deklarera fält som krävs säkerställer du att dina datamodeller är korrekta, fullständiga och anpassade till dina krav. I det här inlägget täckte vi tre distinkta metoder för att definiera de obligatoriska fälten i Pydantic, det vill säga anteckningar, ellipsen (...) och fältfunktionen. Dessutom har vi tittat på några rekommenderade metoder för att använda obligatoriska fält så att du effektivt kan ange fält i din datamodell.