Cum să definiți câmpurile obligatorii în Pydantic

Cum Sa Definiti Campurile Obligatorii In Pydantic



Un câmp obligatoriu este un câmp care trebuie să fie prezent în modelul de date. Aceste câmpuri sunt esențiale și nu pot fi lăsate necompletate, deoarece sunt necesare pentru a funcționa corect sau pentru a finaliza un proces. Dacă unui câmp obligatoriu nu i se dă o valoare, Pydantic va ridica o excepție ValueError. Câmpurile pot fi definite ca câmpuri obligatorii în mai multe moduri. Cu toate acestea, Pydantic setează toate câmpurile modelului de date „obligatorii” în mod implicit. Acest articol va demonstra cum să definiți câmpurile obligatorii în Pydantic. Vom discuta, de asemenea, câteva sfaturi bune pentru utilizarea câmpurilor obligatorii.

Beneficiile utilizării câmpurilor obligatorii

Există mai multe avantaje în utilizarea câmpurilor obligatorii în Pydantic.

  • Asigurarea completității datelor: Câmpurile obligatorii ne ajută să ne asigurăm că modelele noastre de date sunt complete și valide. Acest lucru poate ajuta la prevenirea erorilor în codul dvs. și procesarea datelor.
  • Prevenirea intrărilor rău intenționate: Câmpurile obligatorii pot fi folosite și pentru a preveni utilizatorii rău intenționați să injecteze date nevalide în sistemul dvs.
  • Faceți codul mai lizibil: Puteți îmbunătăți lizibilitatea, precum și înțelegerea codului dvs. utilizând câmpurile obligatorii.

Cum să definiți câmpurile obligatorii în Pydantic

În Pydantic, există trei metode pentru a defini un câmp ca câmp obligatoriu. Să le explorăm în detaliu pe fiecare dintre ele.







Utilizarea adnotărilor

Cel mai simplu mod de a defini un câmp obligatoriu în Pydantic este utilizarea adnotărilor. Folosind adnotări, un tip de metadate sintactice, puteți adăuga mai multe detalii despre variabile și atribute ale claselor. În Pydantic, adnotările sunt folosite pentru a indica tipul de date așteptat al unui câmp și, în mod implicit, toate câmpurile adnotate sunt considerate obligatorii până când faceți un câmp sau câmpuri opționale.



din pidantic import Model de bază

clasă Persoană ( Model de bază ) :

Numele complet: str

înălţime: pluti

e-mail : str

În acest exemplu, numele complet, înălțimea și e-mailul sunt toate câmpurile obligatorii. Dacă creați o instanță a clasei Person fără a furniza valori pentru aceste câmpuri, Pydantic va genera o ValidationError care indică faptul că câmpurile necesare lipsesc.



încerca :

date_persoană = {

'înălţime' : 5.8 ,

}

persoană = Persoană ( **date_persoană )

cu exceptia ValueError la fel de Este:

imprimare ( Este )





În acest exemplu, câmpul full_name lipsește, iar câmpul înălțime lipsește, de asemenea. Ambele câmpuri sunt obligatorii, iar ValidationError oferă informații clare despre câmpurile lipsă.

Utilizarea punctelor de suspensie (…)

O altă modalitate de a declara un câmp așa cum este necesar în Pydantic este folosind punctele de suspensie ( ). Aceasta este o abordare explicită oferită de Pydantic, pentru a marca un câmp așa cum este necesar.



din pidantic import Model de bază

clasă Produs ( Model de bază ) :

Nume: str = ...

Preț : pluti = ...

Descriere : str = ...

În acest exemplu, câmpurile nume, preț și descriere sunt toate definite așa cum este necesar, folosind punctele de suspensie. Această metodă face explicit și vizibil faptul că anumite câmpuri nu pot fi omise atunci când se creează o instanță a clasei Product.

încerca :

date_produs = {

'Nume' : 'Telefon mobil' ,

'Descriere' : „Telefon inteligent cu 16 Gb RAM” ,

}

produs = Produs ( **date_produs )

cu exceptia ValueError la fel de Este:

imprimare ( Este )


În acest exemplu, câmpul preț lipsește, iar ValidationError indică clar câmpul obligatoriu lipsă.

Utilizarea funcției Field

Funcția Field din modulul Pydantic oferă capabilități suplimentare pentru personalizarea validării câmpului și a metadatelor. Puteți utiliza funcția Câmp pentru a declara câmpurile obligatorii și pentru a aplica reguli de validare suplimentare.

Iată cum puteți defini câmpurile obligatorii folosind funcția Câmp:

din pidantic import Model de bază , Camp

clasă Abordare ( Model de bază ) :

stradă: str = Camp ( ... , Descriere = 'Adresă' )

oraș: str = Camp ( ... )

cod poștal: str = Camp ( ... )

În acest exemplu, folosim funcția Field pentru a defini câmpurile obligatorii street, city și zip_code, împreună cu reguli și descrieri suplimentare de validare. Punctele de suspensie „…” indică faptul că aceste câmpuri trebuie definite ca câmpuri obligatorii.

încerca :

adresa_date = {

'stradă' : „Strada principală 111” ,

'cod poștal' : '123456'

}

abordare = Abordare ( **date_adresă )

cu exceptia ValueError la fel de Este:

imprimare ( Este )

În acest exemplu, câmpul oraș lipsește, iar ValidationError oferă informații despre câmpul obligatoriu lipsă.

Câmpurile obligatorii pot fi validate folosind alte caracteristici Pydantic, cum ar fi constrângeri și tipuri. De exemplu, puteți specifica că un câmp de nume trebuie să fie un șir de cel puțin 5 caractere. Puteți utiliza Decoratorul de câmpuri pentru a personaliza comportamentul câmpurilor obligatorii. De exemplu, puteți specifica o valoare implicită pentru câmp sau un mesaj care urmează să fie afișat dacă câmpului nu i se dă o valoare.

Utilizarea mai multor metode pentru a defini câmpurile obligatorii într-un singur model Pydantic

Puteți utiliza mai multe metode de definire a câmpurilor obligatorii într-un singur model Pydantic. De exemplu, puteți utiliza adnotări pentru unele câmpuri, puncte de suspensie ( ) pentru alții și funcția Field pentru personalizare suplimentară. Pydantic vă permite să alegeți cea mai bună abordare pentru organizarea codului și preferințele de lizibilitate. Luați în considerare următorul exemplu:

din pidantic import Model de bază , Camp

clasă Angajat ( Model de bază ) :

Nume: str

departament: str =

salariu: pluti = Camp ( )

În acest exemplu, toate câmpurile trebuie utilizate. Am folosit trei metode diferite pentru a defini câmpurile necesare. Câmpul nume folosește adnotarea, departamentul folosește punctele de suspensie, iar salariul folosește funcția Câmp.

Sfaturi pentru utilizarea câmpurilor obligatorii

Urmărirea unor bune practici atunci când definiți câmpurile obligatorii în Pydantic este esențială pentru a crea cod neted și care poate fi întreținut. Următoarele sfaturi vă vor ajuta să definiți câmpurile necesare în Pydantic:

  1. Utilizați nume de câmpuri clare și descriptive : alegeți nume semnificative pentru câmpurile dvs. care indică clar scopul acestora. Acest lucru îi ajută pe alți dezvoltatori să știe ce date sunt necesare și reduce șansele de a lipsi câmpurile obligatorii.
  2. Furnizați descrieri informative ale câmpurilor : Când utilizați funcția Câmp pentru a defini câmpurile obligatorii, furnizați descrieri descriptive care explică scopul și formatul așteptat al datelor.
  3. Câmpuri legate de grup : Dacă modelul dvs. de date are un număr mare de câmpuri, luați în considerare gruparea câmpurilor asociate în structuri imbricate. Acest lucru poate ajuta codul să fie mai lizibil și să faciliteze gestionarea câmpurilor obligatorii.
  4. Utilizați mesaje personalizate pentru câmpurile obligatorii: În mod implicit, Pydantic va ridica o excepție ValueError dacă unui câmp obligatoriu nu i se dă o valoare. Puteți personaliza mesajul de eroare specificând argumentul mesajului decoratorului de câmp.

Concluzie

Pydantic, în mod implicit, face câmpurile așa cum este necesar. Cu toate acestea, puteți defini în mod explicit câmpul ca câmpuri obligatorii. Prin declararea câmpurilor necesare, vă asigurați că modelele dvs. de date sunt exacte, complete și aliniate cu cerințele dvs. În această postare, am acoperit trei metode distincte pentru definirea câmpurilor necesare în Pydantic, adică adnotări, punctele de suspensie (...) și funcția Field. În plus, am analizat câteva practici recomandate pentru utilizarea câmpurilor obligatorii, astfel încât să puteți specifica în mod eficient câmpurile în modelul dvs. de date.