Vai al contenuto principale

Introduzione

  • Questo articolo ti guida attraverso la validazione dei dati con pydantic. Pydantic è una libreria Python costruita in Rust.
  • Prima di iniziare, assicurati di avere Python e la libreria Pydantic installati nel tuo ambiente. Controlla il comando di installazione di pydantic qui sotto.
pip install pydantic

Creare un modello

  • Per prima cosa, dovremo importare e far ereditare la nostra classe da pydantic.BaseModel per iniziare a validare. Nel nostro esempio creeremo una classe chiamata Person che avrà un nome, un’età e un’e-mail.
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int
    email: str
  • Con questa classe, quando la istanziamo, pydantic validerà se i parametri name ed email sono stringhe e se age è un intero.

Usare il modello

  • Ora che l’abbiamo creata, istanzieremo la classe. Creeremo un dict contenente i dati e lo spacchetteremo nella nostra classe.
data = {
    "name": "John",
    "age": 19,
    "email": "john@gmail.com"
}
person = Person(**data)
  • L’esempio qui sopra non solleverà alcun errore poiché tutti i parametri sono del tipo corretto. Ora creeremo dei dati errati per verificare se la nostra validazione funziona.
data = {
    "name": "John",
    "age": "19",
    "email": "john@gmail.com"
}
person = Person(**data)
  • Nell’esempio qui sopra verrà sollevato l’errore ValidationError perché age deve essere un intero e non può essere fornito come stringa.

Creare una dataclass

  • Puoi anche creare delle dataclass con pydantic, che saranno simili alle dataclass standard di Python ma avranno validazioni come BaseModel.
from pydantic import dataclass

@dataclass
class Person:
    name: str
    age: int
    email: str
  • Se inviamo una string ad age, verrà convertita in int.
Pydantic supporta la validazione ricorsiva, il che significa che quando valida modelli annidati, valida anche i modelli interni.Se una classe ha una lista di Person, people: list[Person], controllerà ogni elemento della lista e lo convertirà in un Person.

Extra

  • Pydantic ha alcuni extra come la validazione delle e-mail e un pacchetto timezone di fallback. Per installarli, devi eseguire i seguenti comandi:
pip install pydantic[email]
pip install pydantic[timezone]
  • Puoi installarli entrambi insieme eseguendo il seguente comando.
pip install pydantic[email,timezone]
  • Pydantic[email] fornisce una classe per gestire le email, normalizzandole e validandone il formato user@domain.tld. Per questo, pydantic fornisce la classe EmailStr per eseguire questa validazione.
from pydantic import dataclass, EmailStr

@dataclass
class Person:
    name: str
    age: int
    email: EmailStr

Ti è piaciuto questo articolo?

  • Abbiamo creato questo contenuto con grande cura per offrirti il miglior aiuto possibile. Se questo articolo ti è stato utile in qualche modo, sostieni il nostro lavoro! Lascia la tua recensione! ci aiuta a capire cosa conta di più per te.

Google Reviews

Lascia la tua recensione su Google Reviews.

Trustpilot

Lascia la tua recensione su Trustpilot.