Kako definirati obavezna polja u Pydantic-u

Kako Definirati Obavezna Polja U Pydantic U



Obavezno polje je polje koje mora biti prisutno u podatkovnom modelu. Ta su polja neophodna i ne mogu ostati prazna jer su potrebna za ispravno funkcioniranje ili dovršetak procesa. Ako obavezno polje nema vrijednost, Pydantic će pokrenuti iznimku ValueError. Polja se mogu definirati kao obavezna polja na razne načine. Međutim, Pydantic postavlja sva polja modela podataka kao 'obavezna' prema zadanim postavkama. Ovaj članak će pokazati kako definirati obavezna polja u Pydantic-u. Također ćemo raspravljati o nekim dobrim savjetima za korištenje obaveznih polja.

Prednosti korištenja obaveznih polja

Postoji nekoliko prednosti korištenja obaveznih polja u Pydantic-u.

  • Osiguravanje potpunosti podataka: Obavezna polja pomažu nam osigurati da su naši modeli podataka potpuni i valjani. To može spriječiti pogreške u vašem kodu i obradi podataka.
  • Sprječavanje zlonamjernog unosa: Obavezna polja također se mogu koristiti za sprječavanje zlonamjernih korisnika od ubacivanja nevažećih podataka u vaš sustav.
  • Učiniti kod čitljivijim: Možete poboljšati čitljivost kao i razumijevanje svog koda korištenjem obaveznih polja.

Kako definirati obavezna polja u Pydantic-u

U Pydantic-u postoje tri metode za definiranje polja kao obaveznog polja. Istražimo svaki od njih detaljno.







Korištenje komentara

Najjednostavniji način za definiranje obaveznog polja u Pydantic-u je korištenje napomena. Korištenjem komentara, vrste sintaktičkih metapodataka, možete dodati više pojedinosti o varijablama i atributima klasa. U Pydantic-u, komentari se koriste za označavanje očekivane vrste podataka polja, a prema zadanim postavkama sva polja s komentarima smatraju se obaveznima dok polje ili polja ne učinite opcionalnima.



iz pidantičan uvoz Osnovni model

razreda Osoba ( Osnovni model ) :

puno ime: str

visina: plutati

elektronička pošta : str

U ovom primjeru, puno_ime, visina i e-pošta obavezna su polja. Ako stvorite instancu klase Person bez davanja vrijednosti za ova polja, Pydantic će pokrenuti ValidationError što pokazuje da potrebna polja nedostaju.



probati :

osobni_podaci = {

'visina' : 5.8 ,

}

osoba = Osoba ( **osobni_podaci )

osim ValueError kao To je:

ispisati ( to je )





U ovom primjeru nedostaje polje full_name, a nedostaje i polje visine. Oba ova polja su obavezna, a ValidationError pruža jasne informacije o poljima koja nedostaju.

Korištenje elipse (…)

Drugi način deklariranja polja kao što je potrebno u Pydantic-u je korištenje elipse ( ). Ovo je eksplicitan pristup koji nudi Pydantic, za označavanje polja prema potrebi.



iz pidantičan uvoz Osnovni model

razreda Proizvod ( Osnovni model ) :

Ime: str = ...

cijena : plutati = ...

opis : str = ...

U ovom su primjeru polja naziv, cijena i opis definirana prema potrebi korištenjem elipse. Ova metoda čini eksplicitnim i vidljivim da se određena polja ne mogu preskočiti prilikom stvaranja instance klase proizvoda.

probati :

proizvod_podaci = {

'Ime' : 'Mobitel' ,

'opis' : 'Pametni telefon sa 16 Gb RAM-a' ,

}

proizvod = Proizvod ( **podaci_proizvoda )

osim ValueError kao To je:

ispisati ( to je )


U ovom primjeru polje s cijenom nedostaje, a ValidationError jasno ukazuje na potrebno polje koje nedostaje.

Korištenje funkcije Field

Funkcija Field iz modula Pydantic pruža dodatne mogućnosti za prilagodbu provjere valjanosti polja i metapodataka. Možete koristiti funkciju Field za deklariranje obaveznih polja i primjenu dodatnih pravila provjere valjanosti.

Evo kako možete definirati obavezna polja pomoću funkcije Field:

iz pidantičan uvoz Osnovni model , Polje

razreda Adresa ( Osnovni model ) :

ulica: str = Polje ( ... , opis = 'Adresa ulice' )

Grad: str = Polje ( ... )

Poštanski broj: str = Polje ( ... )

U ovom primjeru koristimo funkciju Field za definiranje potrebnih polja ulica, grad i poštanski broj, zajedno s dodatnim pravilima i opisima provjere valjanosti. Trotočka '…' označava da ova polja moraju biti definirana kao obavezna polja.

probati :

podaci_adrese = {

'ulica' : 'Glavna ulica 111' ,

'Poštanski broj' : '123456'

}

adresa = Adresa ( **podaci_adrese )

osim ValueError kao To je:

ispisati ( to je )

U ovom primjeru polje grada nedostaje, a ValidationError pruža informacije o potrebnom polju koje nedostaje.

Obavezna polja mogu se potvrditi pomoću drugih Pydantic značajki, kao što su ograničenja i tipovi. Na primjer, možete odrediti da polje imena mora biti niz od najmanje 5 znakova. Možete koristiti dekorater polja za prilagodbu ponašanja potrebnih polja. Na primjer, možete navesti zadanu vrijednost za polje ili poruku koja će se prikazati ako polje nema vrijednost.

Korištenje više metoda za definiranje obaveznih polja u jednom Pydantic modelu

Možete koristiti više metoda za definiranje potrebnih polja unutar jednog Pydantic modela. Na primjer, možete koristiti komentare za neka polja, elipsu ( ) za ostale i funkciju polja za dodatnu prilagodbu. Pydantic vam omogućuje odabir najboljeg pristupa za vašu organizaciju koda i postavke čitljivosti. Razmotrite sljedeći primjer:

iz pidantičan uvoz Osnovni model , Polje

razreda Zaposlenik ( Osnovni model ) :

Ime: str

odjel: str =

plaća: plutati = Polje ( )

U ovom primjeru potrebno je koristiti sva polja. Koristili smo tri različite metode za definiranje potrebnih polja. Polje imena koristi napomenu, odjel koristi elipsu, a plaća koristi funkciju polja.

Savjeti za korištenje obaveznih polja

Pridržavanje nekih dobrih praksa pri definiranju obaveznih polja u Pydantic-u ključno je za stvaranje glatkog koda koji se može održavati. Sljedeći savjeti pomoći će vam da definirate potrebna polja u Pydantic-u:

  1. Koristite jasne i opisne nazive polja : Odaberite smislena imena za svoja polja koja jasno pokazuju njihovu svrhu. To pomaže drugim razvojnim programerima da znaju koji su podaci potrebni i smanjuje mogućnost propuštanja potrebnih polja.
  2. Navedite informativne opise polja : Kada koristite funkciju Field za definiranje potrebnih polja, pružite opisne opise koji objašnjavaju svrhu i očekivani format podataka.
  3. Grupna srodna polja : Ako vaš podatkovni model ima velik broj polja, razmislite o grupiranju povezanih polja u ugniježđene strukture. To može pomoći da vaš kod bude čitljiviji i olakšati upravljanje potrebnim poljima.
  4. Koristite prilagođene poruke za obavezna polja: Prema zadanim postavkama, Pydantic će pokrenuti iznimku ValueError ako obavezno polje nema vrijednost. Poruku o pogrešci možete prilagoditi navođenjem argumenta poruke dekoratoru polja.

Zaključak

Pydantic prema zadanim postavkama postavlja polja prema potrebi. Međutim, možete izričito definirati polje kao obavezna polja. Deklariranjem polja prema potrebi osiguravate da su vaši podatkovni modeli točni, potpuni i usklađeni s vašim zahtjevima. U ovom smo postu pokrili tri različite metode za definiranje potrebnih polja u Pydantic-u, tj. komentare, elipsu (...) i funkciju Field. Osim toga, pogledali smo neke preporučene prakse za korištenje obaveznih polja kako biste mogli učinkovito odrediti polja u svom podatkovnom modelu.