BaseModel ·
Field ·
Validatoren ·
Nested Models ·
Union Types ·
Serialisierung
Pydantic ist das Herz von FastAPI für Datenvalidierung und Serialisierung. Diese Cheatsheet fasst die wichtigsten Konzepte für die Definition von Modellen, Validierungsregeln und Typen zusammen.
BaseModel ist die Basisklasse für alle Pydantic-Modelle. Sie definiert die Struktur und Typen von Daten – mit automatischer Validierung und Typkonvertierung.
Optional für optionale Felder und Field(alias=...) für JSON-Feldnamen, die von Python-Namen abweichen.
Field definiert Validierungsregeln für einzelne Felder – wie Mindest-/Maximallänge, Zahlenbereiche und reguläre Ausdrücke.
| Parameter | Beschreibung | Beispiel |
|---|---|---|
| ... | Erforderliches Feld | Field(...) |
| default | Standardwert | Field(0) |
| min_length | Mindestlänge (Strings) | Field(..., min_length=2) |
| max_length | Maximallänge (Strings) | Field(..., max_length=50) |
| gt | Größer als | Field(..., gt=0) |
| ge | Größer oder gleich | Field(..., ge=0) |
| lt | Kleiner als | Field(..., lt=100) |
| le | Kleiner oder gleich | Field(..., le=100) |
| regex | Regulärer Ausdruck | Field(..., regex=r'^[a-z]+$') |
| alias | Alternativer Feldname (JSON) | Field(..., alias='user_name') |
Field(..., description="...") für die OpenAPI-Dokumentation – die Beschreibung erscheint automatisch in der API-Dokumentation.
Validatoren ermöglichen benutzerdefinierte Validierungslogik für einzelne Felder oder das gesamte Modell. @validator (Pydantic V1) oder @field_validator (Pydantic V2).
@field_validator und @model_validator. Die V1-Syntax (@validator) funktioniert weiterhin, wird aber in Zukunft entfernt.
Nested Models ermöglichen die Abbildung komplexer, verschachtelter Datenstrukturen – ein Modell kann andere Modelle oder Listen von Modellen enthalten.
Optional für optionale Untermodelle.
Union Types erlauben es, dass ein Feld mehrere verschiedene Typen annehmen kann. Optional ist eine Kurzform für Union[T, None].
Literal für Enums mit festen Werten – das verbessert die Typsicherheit und erscheint in der OpenAPI-Dokumentation als Dropdown.
Serialisierung steuert, wie Modelle in Dictionaries oder JSON konvertiert werden – mit Optionen zum Ausschließen von Feldern, Umbenennung und Formatierung.
model_dump() und model_dump_json() (Pydantic V2). Bei älteren Versionen (V1) sind es dict() und json().
BaseModel
Field
@validator
Nested
Union
model_dump
class User(BaseModel): name: str ·
Field(..., min_length=3) ·
user.model_dump()