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úkatrieda 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úkatrieda 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:
- 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í.
- 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.
- 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.
- 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.