Come definire i campi obbligatori in Pydantic

Come Definire I Campi Obbligatori In Pydantic



Un campo obbligatorio è un campo che deve essere presente nel modello dati. Questi campi sono essenziali e non possono essere lasciati vuoti poiché sono necessari per funzionare correttamente o completare un processo. Se a un campo obbligatorio non viene assegnato un valore, Pydantic solleverà un'eccezione ValueError. I campi possono essere definiti come obbligatori in vari modi. Tuttavia, Pydantic imposta tutti i campi del modello dati come 'richiesti' per impostazione predefinita. Questo articolo dimostrerà come definire i campi obbligatori in Pydantic. Discuteremo anche alcuni buoni suggerimenti per l'utilizzo dei campi obbligatori.

Vantaggi dell'utilizzo dei campi obbligatori

Ci sono diversi vantaggi nell'utilizzare i campi obbligatori in Pydantic.

  • Garantire la completezza dei dati: I campi obbligatori ci aiutano a garantire che i nostri modelli di dati siano completi e validi. Ciò può aiutare a prevenire errori nel codice e nell'elaborazione dei dati.
  • Prevenire input dannosi: I campi obbligatori possono essere utilizzati anche per impedire a utenti malintenzionati di inserire dati non validi nel sistema.
  • Rendere il codice più leggibile: Puoi migliorare la leggibilità e la comprensione del tuo codice utilizzando i campi obbligatori.

Come definire i campi obbligatori in Pydantic

In Pydantic, esistono tre metodi per definire un campo come campo obbligatorio. Esploriamo ciascuno di essi in dettaglio.







Utilizzo delle annotazioni

Il modo più semplice per definire un campo obbligatorio in Pydantic è utilizzare le annotazioni. Utilizzando le annotazioni, un tipo di metadati sintattici, puoi aggiungere ulteriori dettagli su variabili e attributi delle classi. In Pydantic, le annotazioni vengono utilizzate per indicare il tipo di dati previsto per un campo e, per impostazione predefinita, tutti i campi annotati sono considerati obbligatori finché non rendi uno o più campi facoltativi.



da pidantico importare Modello base

classe Persona ( Modello base ) :

nome e cognome: stra

altezza: galleggiante

e-mail : stra

In questo esempio, nome_completo, altezza ed email sono tutti campi obbligatori. Se crei un'istanza della classe Person senza fornire valori per questi campi, Pydantic genererà un ValidationError indicando che mancano i campi richiesti.



Tentativo :

dati_persona = {

'altezza' : 5.8 ,

}

persona = Persona ( **dati_persona )

tranne ValoreErrore COME È:

stampa ( È )





In questo esempio manca il campo full_name e anche il campo altezza. Entrambi questi campi sono obbligatori e ValidationError fornisce informazioni chiare sui campi mancanti.

Utilizzo dei puntini di sospensione (…)

Un altro modo per dichiarare un campo come richiesto in Pydantic è utilizzare i puntini di sospensione ( ). Questo è un approccio esplicito fornito da Pydantic, per contrassegnare un campo come richiesto.



da pidantico importare Modello base

classe Prodotto ( Modello base ) :

nome: stra = ...

prezzo : galleggiante = ...

descrizione : stra = ...

In questo esempio, i campi nome, prezzo e descrizione sono tutti definiti come richiesto utilizzando i puntini di sospensione. Questo metodo rende esplicito e visibile che particolari campi non possono essere ignorati durante la creazione di un'istanza della classe Product.

Tentativo :

dati del prodotto = {

'nome' : 'Cellulare' ,

'descrizione' : 'Smartphone con 16Gb di RAM' ,

}

Prodotto = Prodotto ( **dati del prodotto )

tranne ValoreErrore COME È:

stampa ( È )


In questo esempio manca il campo del prezzo e ValidationError indica chiaramente la mancanza del campo obbligatorio.

Utilizzando la funzione campo

La funzione Field del modulo Pydantic fornisce funzionalità aggiuntive per personalizzare la convalida dei campi e i metadati. È possibile utilizzare la funzione Campo per dichiarare i campi obbligatori e applicare regole di convalida aggiuntive.

Ecco come puoi definire i campi obbligatori utilizzando la funzione Campo:

da pidantico importare Modello base , Campo

classe Indirizzo ( Modello base ) :

strada: stra = Campo ( ... , descrizione = 'Indirizzo' )

città: stra = Campo ( ... )

Cap: stra = Campo ( ... )

In questo esempio, utilizziamo la funzione Field per definire i campi obbligatori street, city e zip_code, insieme a ulteriori regole e descrizioni di convalida. I puntini di sospensione “…” indicano che questi campi devono essere definiti come campi obbligatori.

Tentativo :

indirizzo_dati = {

'strada' : 'Via principale 111' ,

'Cap' : '123456'

}

indirizzo = Indirizzo ( **dati_indirizzo )

tranne ValoreErrore COME È:

stampa ( È )

In questo esempio manca il campo della città e ValidationError fornisce informazioni sul campo obbligatorio mancante.

I campi obbligatori possono essere convalidati utilizzando altre funzionalità Pydantic, come vincoli e tipi. Ad esempio, potresti specificare che un campo nome deve essere una stringa di almeno 5 caratteri. È possibile utilizzare il decoratore di campi per personalizzare il comportamento dei campi obbligatori. Ad esempio, potresti specificare un valore predefinito per il campo o un messaggio da visualizzare se al campo non viene assegnato un valore.

Utilizzo di più metodi per definire i campi richiesti in un unico modello Pydantic

È possibile utilizzare più metodi per definire i campi obbligatori all'interno di un singolo modello Pydantic. Ad esempio, puoi utilizzare le annotazioni per alcuni campi, i puntini di sospensione ( ) per gli altri e la funzione Campo per un'ulteriore personalizzazione. Pydantic ti consente di scegliere l'approccio migliore per l'organizzazione del codice e le preferenze di leggibilità. Considera il seguente esempio:

da pidantico importare Modello base , Campo

classe Dipendente ( Modello base ) :

nome: stra

Dipartimento: stra =

stipendio: galleggiante = Campo ( )

In questo esempio è necessario utilizzare tutti i campi. Abbiamo utilizzato tre metodi diversi per definire i campi obbligatori. Il campo del nome utilizza l'annotazione, il dipartimento utilizza i puntini di sospensione e lo stipendio utilizza la funzione Campo.

Suggerimenti per l'utilizzo dei campi obbligatori

Seguire alcune buone pratiche quando si definiscono i campi obbligatori in Pydantic è essenziale per creare un codice fluido e gestibile. I seguenti suggerimenti ti aiuteranno a definire i campi richiesti in Pydantic:

  1. Utilizza nomi di campo chiari e descrittivi : scegli nomi significativi per i tuoi campi che ne indichino chiaramente lo scopo. Ciò aiuta gli altri sviluppatori a sapere quali dati sono necessari e riduce le possibilità che manchino i campi obbligatori.
  2. Fornire descrizioni informative dei campi : quando si utilizza la funzione Campo per definire i campi obbligatori, fornire descrizioni descrittive che spieghino lo scopo e il formato previsto dei dati.
  3. Campi correlati al gruppo : se il tuo modello dati ha un numero elevato di campi, valuta la possibilità di raggruppare i campi correlati in strutture nidificate. Ciò può aiutare il tuo codice a essere più leggibile e semplificare la gestione dei campi obbligatori.
  4. Utilizza messaggi personalizzati per i campi obbligatori: Per impostazione predefinita, Pydantic solleverà un'eccezione ValueError se a un campo obbligatorio non viene assegnato un valore. Puoi personalizzare il messaggio di errore specificando l'argomento del messaggio al decoratore del campo.

Conclusione

Pydantic, per impostazione predefinita, crea i campi come richiesto. Tuttavia, è possibile definire esplicitamente il campo come campi obbligatori. Dichiarando i campi come obbligatori, ti assicuri che i tuoi modelli di dati siano accurati, completi e allineati ai tuoi requisiti. In questo post, abbiamo trattato tre metodi distinti per definire i campi richiesti in Pydantic, ovvero le annotazioni, i puntini di sospensione (...) e la funzione Campo. Inoltre, abbiamo esaminato alcune pratiche consigliate per l'utilizzo dei campi obbligatori in modo da poter specificare in modo efficace i campi nel modello dati.