Výhody použití povinných polí
Používání požadovaných polí v Pydantic má několik výhod.
- Zajištění úplnosti dat: Povinná pole nám pomáhají zajistit, aby naše datové modely byly úplné a platné. To může pomoci předejít chybám ve vašem kódu a zpracování dat.
- Prevence škodlivého vstupu: Povinná pole lze také použít k zabránění uživatelům se zlými úmysly ve vkládání neplatných dat do vašeho systému.
- Aby byl kód čitelnější: Pomocí povinných polí můžete zlepšit čitelnost a srozumitelnost kódu.
Jak definovat požadovaná pole v Pydantic
V Pydantic existují tři způsoby, jak definovat pole jako povinné pole. Prozkoumejme každou z nich podrobně.
Použití anotací
Nejjednodušší způsob, jak definovat požadované pole v Pydantic, je pomocí anotací. Pomocí anotací, což je typ syntaktických metadat, můžete přidat další podrobnosti o proměnných a atributech tříd. V Pydantic se poznámky používají k označení očekávaného datového typu pole a ve výchozím nastavení jsou všechna pole s poznámkami považována za povinná, dokud pole nebo pole nenastavíte jako volitelná.
z pydantický import Základní Model
třída Osoba ( Základní Model ) :
celé jméno: str
výška: plovák
e-mailem : str
V tomto příkladu jsou povinná pole full_name, height a email. Pokud vytvoříte instanci třídy Person, aniž byste zadali hodnoty pro tato pole, Pydantic vyvolá chybu ValidationError označující, že chybí požadovaná pole.
Snaž se :
osobní_údaje = {
'výška' : 5.8 ,
}
osoba = Osoba ( **osobní_údaje )
až na ValueError tak jako To je:
tisk ( to je )
V tomto příkladu chybí pole full_name a chybí také pole výška. Obě tato pole jsou povinná a chyba ValidationError poskytuje jasné informace o chybějících polích.
Použití elipsy (…)
Dalším způsobem, jak deklarovat pole požadované v Pydantic, je použití elipsy ( … ). Toto je explicitní přístup poskytovaný společností Pydantic k označení pole jako požadovaného.
z pydantický import Základní Model
třída Produkt ( Základní Model ) :
název: str = ...
cena : plovák = ...
popis : str = ...
V tomto příkladu jsou pole název, cena a popis definována podle potřeby pomocí tří teček. Díky této metodě je explicitní a viditelné, že konkrétní pole nelze při vytváření instance třídy Product přeskočit.
Snaž se :produktová_data = {
'název' : 'Mobilní telefon' ,
'popis' : 'Chytrý telefon s 16 GB RAM' ,
}
produkt = Produkt ( **data_produktu )
až na ValueError tak jako To je:
tisk ( to je )
V tomto příkladu chybí pole ceny a chyba ValidationError jasně označuje chybějící povinné pole.
Použití funkce pole
Funkce Field z modulu Pydantic poskytuje další možnosti pro přizpůsobení ověřování pole a metadat. Pomocí funkce Field můžete deklarovat požadovaná pole a použít další ověřovací pravidla.
Zde je návod, jak můžete definovat požadovaná pole pomocí funkce Pole:
z pydantický import Základní Model , Poletřída Adresa ( Základní Model ) :
ulice: str = Pole ( ... , popis = 'Adresa ulice' )
město: str = Pole ( ... )
PSČ: str = Pole ( ... )
V tomto příkladu používáme funkci Field k definování povinných polí ulice, město a PSČ spolu s dalšími ověřovacími pravidly a popisy. Tři tečky „…“ značí, že tato pole musí být definována jako povinná pole.
Snaž se :adresa_data = {
'ulice' : 'Hlavní ulice 111' ,
'PSČ' : '123456'
}
adresa = Adresa ( **data_adresy )
až na ValueError tak jako To je:
tisk ( to je )
V tomto příkladu chybí pole města a ValidationError poskytuje informace o chybějícím povinném poli.
Povinná pole lze ověřit pomocí dalších funkcí Pydantic, jako jsou omezení a typy. Můžete například zadat, že pole názvu musí být řetězec o délce alespoň 5 znaků. Pomocí Dekorátoru polí můžete přizpůsobit chování požadovaných polí. Můžete například zadat výchozí hodnotu pro pole nebo zprávu, která se zobrazí, pokud pole nemá hodnotu.
Použití více metod k definování požadovaných polí v jediném pydantickém modelu
V rámci jednoho pydantického modelu můžete použít více metod definování požadovaných polí. Můžete například použít anotace pro některá pole, elipsy ( … ) pro ostatní a funkce Field pro další přizpůsobení. Pydantic vám umožňuje zvolit nejlepší přístup pro vaši organizaci kódu a preference čitelnosti. Zvažte následující příklad:
z pydantický import Základní Model , Poletřída Zaměstnanec ( Základní Model ) :
název: str
oddělení: str = …
plat: plovák = Pole ( … )
V tomto příkladu je nutné použít všechna pole. K definování požadovaných polí jsme použili tři různé metody. Pole názvu používá anotaci, oddělení používá tři tečky a plat používá funkci Pole.
Tipy pro používání povinných polí
Pro vytvoření hladkého a udržovatelného kódu je nezbytné dodržovat některé osvědčené postupy při definování povinných polí v Pydantic. Následující tipy vám pomohou definovat požadovaná pole v Pydanticu:
- Použijte jasné a popisné názvy polí : Vyberte pro svá pole smysluplné názvy, které jasně označují jejich účel. To pomáhá ostatním vývojářům vědět, jaká data jsou potřebná, a snižuje pravděpodobnost, že budou chybět požadovaná pole.
- Poskytněte informativní popis polí : Při použití funkce Field k definování povinných polí poskytněte popisné popisy, které vysvětlují účel a očekávaný formát dat.
- Pole související se skupinou : Pokud má váš datový model velký počet polí, zvažte seskupení souvisejících polí do vnořených struktur. To může pomoci vašemu kódu být čitelnější a usnadnit správu povinných polí.
- Použít vlastní zprávy pro povinná pole: Ve výchozím nastavení Pydantic vyvolá výjimku ValueError, pokud požadovanému poli není zadána hodnota. Chybovou zprávu můžete přizpůsobit zadáním argumentu zprávy pro dekorátor pole.
Závěr
Pydantic ve výchozím nastavení vytváří pole podle potřeby. Pole však můžete explicitně definovat jako povinná pole. Deklarováním polí jako povinných zajistíte, že vaše datové modely jsou přesné, úplné a v souladu s vašimi požadavky. V tomto příspěvku jsme pokryli tři různé metody pro definování požadovaných polí v Pydantic, tj. anotace, elipsy (…) a funkce Field. Kromě toho jsme se podívali na některé doporučené postupy pro používání povinných polí, abyste mohli efektivně specifikovat pole ve svém datovém modelu.