A kötelező mezők meghatározása a Pydanticban

A Kotelezo Mezok Meghatarozasa A Pydanticban



A kötelező mező olyan mező, amelynek jelen kell lennie az adatmodellben. Ezek a mezők elengedhetetlenek, és nem hagyhatók üresen, mivel a megfelelő működéshez vagy egy folyamat befejezéséhez szükségesek. Ha egy kötelező mező nem kap értéket, a Pydantic ValueError kivételt vet fel. A mezőket többféleképpen is meg lehet határozni kötelező mezőként. A Pydantic azonban alapértelmezés szerint minden adatmodell-mezőt „kötelezőnek” állít be. Ez a cikk bemutatja, hogyan kell megadni a kötelező mezőket a Pydanticban. Megbeszélünk néhány jó tippet is a kötelező mezők használatához.

A kötelező mezők használatának előnyei

A Pydantic kötelező mezőinek használata számos előnnyel jár.

  • Az adatok teljességének biztosítása: A kötelező mezők segítségével biztosíthatjuk, hogy adatmodelleink teljesek és érvényesek legyenek. Ez segíthet megelőzni a hibákat a kódban és az adatfeldolgozásban.
  • A rosszindulatú bevitel megakadályozása: A kötelező mezők arra is használhatók, hogy a rosszindulatú felhasználók érvénytelen adatokat fecskendezzenek be a rendszerébe.
  • A kód olvashatóbbá tétele: A kötelező mezők használatával javíthatja a kód olvashatóságát és megértését.

A kötelező mezők meghatározása a Pydanticban

A Pydanticban három módszer létezik a mezők kötelező mezőként való meghatározására. Vizsgáljuk meg mindegyiket részletesen.







Annotációk használata

A Pydanticban a kötelező mezők legegyszerűbb módja a megjegyzések használata. A megjegyzések, egyfajta szintaktikai metaadatok használatával további részleteket adhat meg az osztályok változóiról és attribútumairól. A Pydanticban a megjegyzések a mező várható adattípusának jelzésére szolgálnak, és alapértelmezés szerint az összes megjegyzéssel ellátott mező kötelezőnek minősül mindaddig, amíg egy mezőt vagy mezőket nem kötelezővé nem teszi.



tól től pydantikus import BaseModel

osztály Személy ( BaseModel ) :

teljes név: str

magasság: úszó

email : str

Ebben a példában a teljes_név, magasság és e-mail-cím mind kötelező mezők. Ha úgy hozza létre a Személy osztály példányát, hogy nem ad meg értékeket ezekhez a mezőkhöz, a Pydantic ValidationError üzenetet ad ki, jelezve, hogy hiányoznak a kötelező mezők.



próbáld ki :

személy_adatok = {

'magasság' : 5.8 ,

}

személy = Személy ( **személy_adatok )

kivéve ValueError mint Ez:

nyomtatás ( Ez )





Ebben a példában hiányzik a teljes_név mező, és hiányzik a magasság mező is. Mindkét mező kitöltése kötelező, és a ValidationError egyértelmű információkat ad a hiányzó mezőkről.

Ellipszis használata (…)

Egy másik módszer a mező deklarálására a Pydanticban az ellipszis ( ). Ez a Pydantic által biztosított explicit megközelítés egy mező szükség szerinti megjelölésére.



tól től pydantikus import BaseModel

osztály Termék ( BaseModel ) :

név: str = ...

ár : úszó = ...

leírás : str = ...

Ebben a példában a név, az ár és a leírás mezők mindegyike szükség szerint van meghatározva a háromszög használatával. Ez a módszer egyértelművé és láthatóvá teszi, hogy bizonyos mezőket nem lehet kihagyni a Product osztály példányának létrehozásakor.

próbáld ki :

product_data = {

'név' : 'Mobiltelefon' ,

'leírás' : 'okos telefon 16 Gb RAM-mal' ,

}

termék = Termék ( **termék_adatok )

kivéve ValueError mint Ez:

nyomtatás ( Ez )


Ebben a példában az ár mező hiányzik, és a ValidationError egyértelműen jelzi a hiányzó kötelező mezőt.

A Field Function használata

A Pydantic modul Field funkciója további lehetőségeket biztosít a mezőérvényesítés és a metaadatok testreszabásához. A Mező függvény segítségével deklarálhatja a kötelező mezőket, és további érvényesítési szabályokat alkalmazhat.

A következőképpen határozhatja meg a kötelező mezőket a Mező függvény segítségével:

tól től pydantikus import BaseModel , Terület

osztály Cím ( BaseModel ) :

utca: str = Terület ( ... , leírás = 'Cím' )

város: str = Terület ( ... )

irányítószám: str = Terület ( ... )

Ebben a példában a Mező függvényt használjuk az utca, város és irányítószám kötelező mezők meghatározásához, valamint további érvényesítési szabályokat és leírásokat. A „…” ellipszis azt jelzi, hogy ezeket a mezőket kötelező mezőként kell megadni.

próbáld ki :

cím_adat = {

'utca' : 'Fő utca 111' ,

'irányítószám' : '123456'

}

cím = Cím ( **cím_adat )

kivéve ValueError mint Ez:

nyomtatás ( Ez )

Ebben a példában a város mező hiányzik, és a ValidationError információt nyújt a hiányzó kötelező mezőről.

A kötelező mezők érvényesíthetők más Pydantic szolgáltatásokkal, például megszorításokkal és típusokkal. Megadhatja például, hogy a névmezőnek legalább 5 karakterből álló karakterláncnak kell lennie. A Meződekorátor segítségével testreszabhatja a kötelező mezők viselkedését. Például megadhat egy alapértelmezett értéket a mezőnek vagy egy üzenetet, amely akkor jelenik meg, ha a mező nem kap értéket.

Több módszer használata a kötelező mezők meghatározásához egyetlen pydantikus modellben

Egy Pydantic modellen belül több módszert is használhat a kötelező mezők meghatározására. Például használhat megjegyzéseket egyes mezőkhöz, ellipszis ( ) mások számára, a Field funkció pedig további testreszabáshoz. A Pydantic lehetővé teszi a legjobb megközelítés kiválasztását a kódszervezési és olvashatósági beállításokhoz. Tekintsük a következő példát:

tól től pydantikus import BaseModel , Terület

osztály Munkavállaló ( BaseModel ) :

név: str

osztály: str =

fizetés: úszó = Terület ( )

Ebben a példában az összes mezőt ki kell használni. Három különböző módszert alkalmaztunk a kötelező mezők meghatározásához. A névmező a megjegyzést, a részleg a hárompontot, a fizetés pedig a Mező függvényt használja.

Tippek a kötelező mezők használatához

A zökkenőmentes és karbantartható kód létrehozásához elengedhetetlen néhány bevált gyakorlat követése a kötelező mezők Pydanticban történő meghatározásakor. A következő tippek segítenek meghatározni a kötelező mezőket a Pydanticban:

  1. Használjon egyértelmű és leíró mezőneveket : Válasszon értelmes neveket a mezőknek, amelyek egyértelműen jelzik a céljukat. Ez segít a többi fejlesztőnek tudni, hogy milyen adatokra van szükség, és csökkenti a kötelező mezők hiányának esélyét.
  2. Adjon tájékoztató jellegű mezőleírásokat : Ha a Mező funkciót használja a kötelező mezők meghatározásához, adjon leíró leírást, amely elmagyarázza az adatok célját és várható formátumát.
  3. Csoporthoz kapcsolódó mezők : Ha az adatmodell nagyszámú mezőt tartalmaz, fontolja meg a kapcsolódó mezők beágyazott struktúrákba csoportosítását. Ezzel a kód olvashatóbbá válik, és könnyebbé teheti a kötelező mezők kezelését.
  4. Használjon egyéni üzeneteket a kötelező mezőkhöz: Alapértelmezés szerint a Pydantic ValueError kivételt vet fel, ha egy kötelező mező nem kap értéket. A hibaüzenetet személyre szabhatja, ha megadja az üzenet argumentumát a Meződekorátornak.

Következtetés

A Pydantic alapértelmezés szerint a szükséges mezőket állítja elő. A mezőt azonban kifejezetten kötelező mezőként is megadhatja. A szükséges mezők deklarálásával biztosítja, hogy az adatmodellek pontosak, teljesek és az Ön igényeihez igazodjanak. Ebben a bejegyzésben három különböző módszert ismertettünk a Pydantic kötelező mezőinek meghatározására, azaz a megjegyzésekkel, az ellipszissel (…) és a Field funkcióval. Ezenkívül megvizsgáltunk néhány javasolt gyakorlatot a kötelező mezők használatára vonatkozóan, így hatékonyan adhatja meg a mezőket az adatmodellben.