Kako določiti zahtevana polja v Pydantic

Kako Dolociti Zahtevana Polja V Pydantic



Zahtevano polje je polje, ki mora biti prisotno v podatkovnem modelu. Ta polja so bistvena in ne smejo ostati prazna, saj so potrebna za pravilno delovanje ali dokončanje procesa. Če zahtevano polje nima vrednosti, bo Pydantic sprožil izjemo ValueError. Polja lahko definirate kot obvezna polja na različne načine. Vendar pa Pydantic privzeto nastavi vsa polja podatkovnega modela na 'zahtevana'. Ta članek bo prikazal, kako definirati zahtevana polja v Pydantic. Razpravljali bomo tudi o nekaterih dobrih nasvetih za uporabo obveznih polj.

Prednosti uporabe obveznih polj

Uporaba zahtevanih polj v Pydantic ima več prednosti.

  • Zagotavljanje popolnosti podatkov: Zahtevana polja nam pomagajo zagotoviti, da so naši podatkovni modeli popolni in veljavni. To lahko pomaga preprečiti napake v kodi in obdelavi podatkov.
  • Preprečevanje zlonamernega vnosa: Zahtevana polja lahko uporabite tudi za preprečevanje zlonamernih uporabnikov, da bi v vaš sistem vbrizgali neveljavne podatke.
  • Izdelava kode bolj berljive: Z uporabo obveznih polj lahko izboljšate berljivost in razumevanje kode.

Kako določiti zahtevana polja v Pydantic

V Pydantic obstajajo tri metode za definiranje polja kot obveznega polja. Raziščimo vsakega od njih podrobno.







Uporaba opomb

Najenostavnejši način za definiranje obveznega polja v Pydantic je uporaba opomb. Z opombami, vrsto sintaktičnih metapodatkov, lahko dodate več podrobnosti o spremenljivkah in atributih razredov. V Pydantic se opombe uporabljajo za označevanje pričakovane podatkovne vrste polja in privzeto velja, da so vsa opombe obvezna, dokler polja ali polj ne nastavite kot izbirna.



od pidantičen uvoz BaseModel

razred Oseba ( BaseModel ) :

polno ime: str

višina: lebdi

E-naslov : str

V tem primeru so polno ime, višina in e-pošta obvezna polja. Če ustvarite primerek razreda Person, ne da bi zagotovili vrednosti za ta polja, bo Pydantic sprožil napako ValidationError, ki nakazuje, da zahtevana polja manjkajo.



poskusi :

osebni_podatki = {

'višina' : 5.8 ,

}

oseba = Oseba ( **osebni_podatki )

razen ValueError kot Je:

tiskanje ( je )





V tem primeru manjka polje full_name in polje višine prav tako. Obe polji sta obvezni in ValidationError zagotavlja jasne informacije o manjkajočih poljih.

Uporaba elipse (…)

Drug način za razglasitev polja, kot je zahtevano v Pydantic, je uporaba elipse ( ). To je ekspliciten pristop, ki ga ponuja Pydantic, za označevanje polja, kot je zahtevano.



od pidantičen uvoz BaseModel

razred Izdelek ( BaseModel ) :

ime: str = ...

cena : lebdi = ...

opis : str = ...

V tem primeru so vsa polja ime, cena in opis definirana kot zahtevano z uporabo elipse. S to metodo je eksplicitno in vidno, da določenih polj pri ustvarjanju primerka razreda Product ni mogoče preskočiti.

poskusi :

izdelek_podatki = {

'ime' : 'Mobilni telefon' ,

'opis' : 'Pametni telefon s 16 Gb RAM' ,

}

izdelek = Izdelek ( **podatki_izdelka )

razen ValueError kot Je:

tiskanje ( je )


V tem primeru manjka polje s ceno, ValidationError pa jasno označuje manjkajoče obvezno polje.

Uporaba funkcije Field

Funkcija Field iz modula Pydantic ponuja dodatne zmožnosti za prilagajanje validacije polj in metapodatkov. S funkcijo Field lahko deklarirate zahtevana polja in uporabite dodatna pravila preverjanja.

Tukaj je opisano, kako lahko definirate obvezna polja s funkcijo Field:

od pidantičen uvoz BaseModel , Polje

razred Naslov ( BaseModel ) :

ulica: str = Polje ( ... , opis = 'Naslov ceste' )

mesto: str = Polje ( ... )

Poštna številka: str = Polje ( ... )

V tem primeru uporabljamo funkcijo Field za definiranje zahtevanih polj ulica, mesto in poštna_koda, skupaj z dodatnimi pravili za preverjanje in opisi. Trojica »…« pomeni, da morajo biti ta polja definirana kot obvezna.

poskusi :

naslov_podatki = {

'ulica' : 'Glavna ulica 111' ,

'Poštna številka' : '123456'

}

naslov = Naslov ( **podatki_naslova )

razen ValueError kot Je:

tiskanje ( je )

V tem primeru manjka polje mesta, napaka ValidationError pa nudi informacije o manjkajočem zahtevanem polju.

Zahtevana polja je mogoče preveriti z drugimi funkcijami Pydantic, kot so omejitve in vrste. Na primer, lahko določite, da mora biti imensko polje niz z najmanj 5 znaki. Z dekoratorjem polj lahko prilagodite vedenje zahtevanih polj. Določite lahko na primer privzeto vrednost za polje ali sporočilo, ki bo prikazano, če polje nima vrednosti.

Uporaba več metod za definiranje zahtevanih polj v enem samem Pydantic modelu

Znotraj enega modela Pydantic lahko uporabite več metod definiranja zahtevanih polj. Uporabite lahko na primer opombe za nekatera polja, elipso ( ) za druge in funkcijo Polje za dodatno prilagajanje. Pydantic vam omogoča, da izberete najboljši pristop za vašo organizacijo kode in želje glede berljivosti. Razmislite o naslednjem primeru:

od pidantičen uvoz BaseModel , Polje

razred Zaposleni ( BaseModel ) :

ime: str

oddelek: str =

plača: lebdi = Polje ( )

V tem primeru je treba uporabiti vsa polja. Za določitev zahtevanih polj smo uporabili tri različne metode. Polje z imenom uporablja opombo, oddelek uporablja elipso, plača pa uporablja funkcijo Polje.

Nasveti za uporabo obveznih polj

Upoštevanje nekaterih dobrih praks pri definiranju zahtevanih polj v Pydantic je bistvenega pomena za ustvarjanje gladke in vzdržljive kode. Naslednji nasveti vam bodo pomagali določiti zahtevana polja v Pydantic:

  1. Uporabite jasna in opisna imena polj : Izberite pomembna imena za polja, ki jasno kažejo njihov namen. To drugim razvijalcem pomaga vedeti, kateri podatki so potrebni, in zmanjša možnosti, da bi zamudili zahtevana polja.
  2. Zagotovite informativne opise polj : Pri uporabi funkcije Field za definiranje zahtevanih polj navedite opisne opise, ki pojasnjujejo namen in pričakovano obliko podatkov.
  3. Skupinska sorodna polja : Če ima vaš podatkovni model veliko polj, razmislite o združevanju povezanih polj v ugnezdene strukture. To lahko pomaga, da bo vaša koda bolj berljiva in olajša upravljanje zahtevanih polj.
  4. Za zahtevana polja uporabite sporočila po meri: Privzeto bo Pydantic sprožil izjemo ValueError, če zahtevano polje ne dobi vrednosti. Sporočilo o napaki lahko prilagodite tako, da podate argument sporočila dekoratorju polj.

Zaključek

Pydantic privzeto naredi polja po zahtevah. Vendar pa lahko polje izrecno določite kot obvezna polja. Z razglasitvijo polj, kot je zahtevano, zagotovite, da so vaši podatkovni modeli točni, popolni in usklajeni z vašimi zahtevami. V tej objavi smo obravnavali tri različne metode za definiranje zahtevanih polj v Pydantic, tj. opombe, elipso (…) in funkcijo Field. Poleg tega smo si ogledali nekaj priporočenih praks za uporabo zahtevanih polj, tako da lahko učinkovito določite polja v svojem podatkovnem modelu.