Einführung
Wenn wir Anwendungen in Python schreiben, müssen wir normalerweise Daten verarbeiten und validieren. Pydantic
ist eine beliebte Bibliothek, die uns hilft, Datenmodelle zu definieren und die Datenvalidierung zu automatisieren. In ist ein Kernkonzept, das zur Definition von Datenmodellen und zur Validierung von Eingabedaten verwendet wird Pydantic
. BaseModel
In diesem Artikel erfahren Sie, wie Sie mit Pydantic BaseModel
Datenmodelle erstellen und validieren.
Warum BaseModel verwenden?
Pydantic ist eine Python-Bibliothek zur Datenvalidierung und -analyse. Es ermöglicht Ihnen, Datenmodelle zu definieren und diese Modelle dann zum Validieren und Analysieren von Eingabedaten zu verwenden. Ein Hauptmerkmal von Pydantic sind die Typhinweise, die den Code klarer und verständlicher machen.
In Pydantic
ist BaseModel
eine abstrakte Basisklasse, die zum Definieren des Datenmodells verwendet wird. Es bietet eine einfache und leistungsstarke Möglichkeit, die Struktur von Daten zu beschreiben und die Gültigkeit von Daten zu überprüfen. Die Verwendung BaseModel
kann uns helfen, das Schreiben von manuellem Verifizierungscode zu reduzieren und die Wartbarkeit des Codes zu verbessern.
Erstellen Sie ein einfaches Basismodell
Beginnen wir mit einem einfachen Beispiel: Angenommen, wir entwickeln eine Anwendung, die die persönlichen Daten der Benutzer verarbeiten muss. Wir können BaseModel
ein Benutzerdatenmodell definieren mit:
from pydantic import BaseModel
class User(BaseModel):
username: str
email: str
age: int
In diesem Beispiel definieren wir eine benannte Datei User
mit BaseModel
drei Feldern: username
, email
und age
, die jeweils den Benutzernamen, die E-Mail-Adresse und das Alter des Benutzers darstellen. Typhinweise im Anschluss an die Felder sind erforderlich und Pydantic
werden zur Validierung des Typs der Eingabedaten verwendet.
Validieren Sie Daten mit BaseModel
Sobald wir das Benutzermodell definiert haben, können wir es zur Validierung von Daten verwenden. Vorausgesetzt, wir verfügen bereits über einige vom Benutzer bereitgestellte Daten, können wir diese Daten als Wörterbuch an User
den Klassenkonstruktor übergeben, der Pydantic
die Daten automatisch validiert und ein Benutzerobjekt erstellt:
user_data = {
"username": "john_doe",
"email": "[email protected]",
"age": 30
}
user = User(**user_data)
print(user)
-------------
输出结果如下:
username='john_doe' email='[email protected]' age=30
ValidationError
Pydantic löst eine Ausnahme aus , wenn die bereitgestellten Daten nicht mit dem Modell übereinstimmen . Wir können diese Ausnahme abfangen und Validierungsfehler behandeln, indem wir Folgendes try
verwenden :except
from pydantic import ValidationError
user_data = {
"username": "john_doe",
"email": ["invalid_email"],
"age": "30"
}
try:
user = User(**user_data)
except ValidationError as e:
print(e)
In diesem Beispiel hat das Postfach den falschen Datentyp, sodass Pydantic einen auslöst ValidationError
.
Verwenden Sie Standardwerte und optionale Felder
Manchmal sind einige Felder optional oder wir möchten Standardwerte für Felder bereitstellen. In Pydantic
können wir Field
Klassen verwenden, um diese Funktionen zu implementieren:
from pydantic import BaseModel, Field
class User(BaseModel):
username: str = Field(..., min_length=3)
email: str
age: int = Field(default=18, ge=0)
In diesem Beispiel username
ist das Feld erforderlich und muss mindestens 3 Zeichen enthalten, email
das Feld ist optional und age
das Feld hat einen Standardwert von 18 und muss größer oder gleich 0 sein.
Verwenden Sie verschachtelte Modelle
In praktischen Anwendungen müssen wir möglicherweise komplexe Datenmodelle definieren, einschließlich verschachtelter Modelle. Selbstverständlich Pydantic
wird die Definition und Validierung verschachtelter Modelle unterstützt:
from pydantic import BaseModel
class Address(BaseModel):
street: str
city: str
zip_code: str
class User(BaseModel):
username: str
email: str
age: int
address: Address
In diesem Beispiel User
enthält das Modell ein verschachteltes Address
Modell. Wir können Modelle wie gewohnt verwenden, User
um Daten zu validieren, einschließlich verschachtelter Daten:
user_data = {
"username": "Muller",
"email": "[email protected]",
"age": 30,
"address": {
"street": "nanjing road",
"city": "Shanghai",
"zip_code": "10001"
}
}
user = User(**user_data)
print(user)
-----------------
输出如下:
username='Muller' email='[email protected]' age=30 address=Address(street='nanjing road', city='Shanghai', zip_code='10001')
Zusammenfassen
Pydantic
bietet BaseModel
ein leistungsstarkes Tool zum Definieren und Validieren von Datenmodellen. Dadurch BaseModel
können wir den Arbeitsaufwand für die manuelle Datenvalidierung reduzieren und die Lesbarkeit und Wartbarkeit des Codes verbessern. Ich hoffe, dieser Artikel kann Ihnen helfen, besser zu verstehen, wie Sie Datenmodelle erstellen und validieren Pydantic
.BaseModel