Softwaretests | Detaillierte Erläuterung der Verwendung von Pydantic BaseModel

Fügen Sie hier eine Bildbeschreibung ein

Einführung

Wenn wir Anwendungen in Python schreiben, müssen wir normalerweise Daten verarbeiten und validieren. Pydanticist 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. BaseModelIn diesem Artikel erfahren Sie, wie Sie mit Pydantic BaseModelDatenmodelle 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 Pydanticist BaseModeleine 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 BaseModelkann 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 BaseModelein Benutzerdatenmodell definieren mit:

from pydantic import BaseModel

class User(BaseModel):
    username: str
    email: str
    age: int

In diesem Beispiel definieren wir eine benannte Datei Usermit BaseModeldrei Feldern: username, emailund age, die jeweils den Benutzernamen, die E-Mail-Adresse und das Alter des Benutzers darstellen. Typhinweise im Anschluss an die Felder sind erforderlich und Pydanticwerden 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 Userden Klassenkonstruktor übergeben, der Pydanticdie 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

ValidationErrorPydantic 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 tryverwenden :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 Pydantickönnen wir FieldKlassen 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 usernameist das Feld erforderlich und muss mindestens 3 Zeichen enthalten, emaildas Feld ist optional und agedas 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 Pydanticwird 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 Userenthält das Modell ein verschachteltes AddressModell. Wir können Modelle wie gewohnt verwenden, Userum 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

Pydanticbietet BaseModelein leistungsstarkes Tool zum Definieren und Validieren von Datenmodellen. Dadurch BaseModelkö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

Supongo que te gusta

Origin blog.csdn.net/Tester_muller/article/details/132908057
Recomendado
Clasificación