Ako definovať požadované polia v Pydantic

Ako Definovat Pozadovane Polia V Pydantic



Povinné pole je pole, ktoré musí byť prítomné v dátovom modeli. Tieto polia sú nevyhnutné a nemôžu zostať prázdne, pretože sú potrebné na správne fungovanie alebo dokončenie procesu. Ak povinnému poľu nie je pridelená hodnota, Pydantic vyvolá výnimku ValueError. Polia možno definovať ako povinné polia rôznymi spôsobmi. Pydantic však štandardne nastavuje všetky polia dátového modelu ako „povinné“. Tento článok ukáže, ako definovať povinné polia v Pydantic. Budeme tiež diskutovať o niekoľkých dobrých tipoch na používanie povinných polí.

Výhody používania povinných polí

Používanie povinných polí v Pydantic má niekoľko výhod.

  • Zabezpečenie úplnosti údajov: Povinné polia nám pomáhajú zabezpečiť, aby boli naše dátové modely úplné a platné. Môže to pomôcť zabrániť chybám vo vašom kóde a spracovaní údajov.
  • Zabránenie škodlivému vstupu: Povinné polia možno použiť aj na zabránenie neoprávneným používateľom vkladať do vášho systému neplatné údaje.
  • Aby bol kód čitateľnejší: Pomocou povinných polí môžete zlepšiť čitateľnosť a pochopenie kódu.

Ako definovať požadované polia v Pydantic

V Pydantic existujú tri spôsoby definovania poľa ako povinného poľa. Preskúmajme každú z nich podrobne.







Používanie anotácií

Najjednoduchší spôsob, ako definovať požadované pole v Pydantic, je pomocou anotácií. Pomocou anotácií, typu syntaktických metadát, môžete pridať ďalšie podrobnosti o premenných a atribútoch tried. V Pydantic sa anotácie používajú na označenie očakávaného typu údajov poľa a predvolene sa všetky polia s anotáciami považujú za povinné, kým pole alebo polia nenastavíte ako voliteľné.



od pydantický importovať BaseModel

trieda Osoba ( BaseModel ) :

celé meno: str

výška: plavák

e-mailom : str

V tomto príklade sú povinné polia full_name, height a email. Ak vytvoríte inštanciu triedy Osoba bez zadania hodnôt pre tieto polia, Pydantic vyvolá chybu ValidationError, ktorá indikuje, že chýbajú požadované polia.



skúste :

osobné_údaje = {

'výška' : 5.8 ,

}

osoba = Osoba ( **osobné_údaje )

okrem ValueError ako To je:

vytlačiť ( to je )





V tomto príklade chýba pole full_name a pole výška. Obe tieto polia sú povinné a chyba ValidationError poskytuje jasné informácie o chýbajúcich poliach.

Použitie elipsy (…)

Ďalším spôsobom, ako deklarovať pole požadované v Pydantic, je použitie troch bodiek ( ). Toto je explicitný prístup poskytovaný spoločnosťou Pydantic na označenie poľa ako požadované.



od pydantický importovať BaseModel

trieda Produkt ( BaseModel ) :

názov: str = ...

cena : plavák = ...

popis : str = ...

V tomto príklade sú polia názov, cena a popis definované ako požadované pomocou troch bodiek. Táto metóda robí explicitným a viditeľným, že konkrétne polia nemožno preskočiť pri vytváraní inštancie triedy Product.

skúste :

produktové_údaje = {

'názov' : 'Mobilný telefón' ,

'popis' : 'Inteligentný telefón s 16 GB RAM' ,

}

produkt = Produkt ( **údaje o produkte )

okrem ValueError ako To je:

vytlačiť ( to je )


V tomto príklade chýba pole ceny a chyba ValidationError jasne označuje chýbajúce povinné pole.

Použitie funkcie poľa

Funkcia Field z modulu Pydantic poskytuje ďalšie možnosti na prispôsobenie validácie poľa a metadát. Pomocou funkcie Field môžete deklarovať povinné polia a použiť ďalšie overovacie pravidlá.

Takto môžete definovať požadované polia pomocou funkcie Field:

od pydantický importovať BaseModel , Lúka

trieda Adresa ( BaseModel ) :

ulica: str = Lúka ( ... , popis = 'Ulica' )

mesto: str = Lúka ( ... )

PSČ: str = Lúka ( ... )

V tomto príklade používame funkciu Field na definovanie povinných polí ulica, mesto a PSČ spolu s ďalšími pravidlami overenia a popismi. Trojbodka „…“ označuje, že tieto polia musia byť definované ako povinné polia.

skúste :

údaje_adresy = {

'ulica' : 'Hlavná ulica 111' ,

'PSČ' : '123456'

}

adresu = Adresa ( **údaje_adresy )

okrem ValueError ako To je:

vytlačiť ( to je )

V tomto príklade chýba pole mesta a chyba ValidationError poskytuje informácie o chýbajúcom povinnom poli.

Povinné polia možno overiť pomocou iných funkcií Pydantic, ako sú obmedzenia a typy. Môžete napríklad zadať, že pole názvu musí byť reťazec s minimálne 5 znakmi. Pomocou Dekorátora polí môžete prispôsobiť správanie požadovaných polí. Môžete napríklad zadať predvolenú hodnotu pre pole alebo správu, ktorá sa má zobraziť, ak pole nemá hodnotu.

Použitie viacerých metód na definovanie požadovaných polí v jedinom pydantickom modeli

V rámci jedného pydantického modelu môžete použiť viacero metód definovania požadovaných polí. Môžete napríklad použiť anotácie pre niektoré polia, elipsy ( ) pre ostatných a funkcia Field pre ďalšie prispôsobenie. Pydantic vám umožňuje vybrať si najlepší prístup pre vašu organizáciu kódu a preferencie čitateľnosti. Zvážte nasledujúci príklad:

od pydantický importovať BaseModel , Lúka

trieda zamestnanec ( BaseModel ) :

názov: str

oddelenie: str =

plat: plavák = Lúka ( )

V tomto príklade je potrebné použiť všetky polia. Na definovanie požadovaných polí sme použili tri rôzne metódy. Pole názvu používa anotáciu, oddelenie používa tri bodky a plat používa funkciu Pole.

Tipy na používanie povinných polí

Dodržiavanie niektorých osvedčených postupov pri definovaní povinných polí v Pydantic je nevyhnutné na vytvorenie hladkého a udržiavateľného kódu. Nasledujúce tipy vám pomôžu definovať požadované polia v Pydantic:

  1. Použite jasné a popisné názvy polí : Zvoľte pre svoje polia zmysluplné názvy, ktoré jasne označujú ich účel. To pomáha ostatným vývojárom vedieť, aké údaje sú potrebné, a znižuje pravdepodobnosť vynechania povinných polí.
  2. Poskytnite informatívne popisy polí : Pri použití funkcie Field na definovanie povinných polí uveďte popisné popisy, ktoré vysvetľujú účel a očakávaný formát údajov.
  3. Polia súvisiace so skupinou : Ak má váš dátový model veľký počet polí, zvážte zoskupenie súvisiacich polí do vnorených štruktúr. Váš kód tak môže byť čitateľnejší a správa povinných polí bude jednoduchšia.
  4. Použiť vlastné správy pre povinné polia: V predvolenom nastavení Pydantic vyvolá výnimku ValueError, ak požadovanému poľu nie je pridelená hodnota. Chybové hlásenie môžete prispôsobiť zadaním argumentu správy pre dekoratér poľa.

Záver

Pydantic predvolene vytvára polia podľa potreby. Pole však môžete explicitne definovať ako povinné polia. Vyhlásením polí ako požadovaných zaistíte, že vaše dátové modely sú presné, úplné a v súlade s vašimi požiadavkami. V tomto príspevku sme sa zaoberali tromi rôznymi metódami na definovanie požadovaných polí v Pydantic, tj anotácií, elipsy (...) a funkcie Field. Okrem toho sme preskúmali niektoré odporúčané postupy používania povinných polí, aby ste mohli efektívne špecifikovať polia vo svojom dátovom modeli.