Einführung
- Dieser Artikel führt dich durch die Datenvalidierung mit Pydantic, einer Python-Bibliothek, deren Validierungskern (
pydantic-core) in Rust geschrieben ist. Die Beispiele verwenden Pydantic v2. - Bevor wir beginnen, stelle sicher, dass Python und die Pydantic-Bibliothek in deiner Umgebung installiert sind. Den Installationsbefehl für Pydantic findest du unten.
Ein Modell erstellen
- Zuerst müssen wir es importieren und unsere Klasse von
pydantic.BaseModelerben lassen, um mit der Validierung zu beginnen. In unserem Beispiel erstellen wir eine Klasse namensPerson, die einen Namen, ein Alter und eine E-Mail-Adresse hat.
- Wenn wir diese Klasse instanziieren, validiert Pydantic, dass
nameundemailStrings sind undageeine Ganzzahl ist.
Das Modell verwenden
- Nachdem wir es nun erstellt haben, instanziieren wir die Klasse. Wir erstellen ein Dict mit den Daten und entpacken es in unsere Klasse.
- Das obige Beispiel löst keinen Fehler aus, da alle Felder den korrekten Typ haben. Standardmäßig wandelt Pydantic außerdem kompatible Werte um: Ist
ageder String"19", wird daraus die Ganzzahl19. Nun senden wir fehlerhafte Daten, um zu bestätigen, dass unsere Validierung funktioniert.
- Das obige Beispiel löst einen
ValidationErroraus, daageeine Ganzzahl sein muss und"nineteen"nicht in eine umgewandelt werden kann:
- Um den Fehler zu behandeln, statt dein Programm von ihm stoppen zu lassen, fange ihn mit
try/exceptab. Seine Methodeerrors()listet jedes ungültige Feld auf:
Strict Mode
- Wenn du auch Strings wie
"19"ablehnen möchtest, aktiviere den Strict Mode im Modell. Dann akzeptiertagenur ein echtesint, undPerson(name="John", age="19", email="john@example.com")löstValidationErroraus.
Eine dataclass erstellen
- Mit Pydantic kannst du auch dataclasses erstellen. Sie ähneln den Standard-dataclasses von Python, validieren ihre Felder aber wie
BaseModel.
- Wenn wir den String
"19"anagesenden, wird er in dasint19umgewandelt.
Pydantic unterstützt rekursive Validierung, was bedeutet, dass bei der Validierung verschachtelter Modelle auch die inneren
Modelle validiert werden.Wenn eine Klasse eine Liste von
Person besitzt, people: list[Person], prüft Pydantic jedes Element der Liste und konvertiert es in eine Person.Extras
- Pydantic verfügt über einige Extras, etwa E-Mail-Validierung und ein Fallback-Zeitzonen-Paket. Um sie zu installieren, führe die folgenden Befehle aus:
- Du kannst beide gemeinsam installieren, indem du den folgenden Befehl ausführst.
pydantic[email]fügt den TypEmailStrhinzu, der das Formatuser@domain.tldvalidiert und die Adresse normalisiert.
Umgebungsvariablen beim Start validieren
- Bots und APIs lesen Tokens und Einstellungen aus Umgebungsvariablen. Mit
pydantic-settingsstoppt eine fehlende oder ungültige Variable die Anwendung schon beim Start mit einer klaren Fehlermeldung, statt später mitten in einer Anfrage zu scheitern.
- Deklariere die Variablen, die deine Anwendung braucht, in einer Klasse, die von
BaseSettingserbt. Jedes Feld liest die gleichnamige Umgebungsvariable, ohne auf Groß- und Kleinschreibung zu achten:discord_tokenliestDISCORD_TOKEN.
settings.py
- Ist
DISCORD_TOKENnicht gesetzt, löstSettings()fürdiscord_tokeneinenValidationErrormit der MeldungField requiredaus. Ein Wert wiePORT=abcschlägt genauso fehl, daporteine Ganzzahl sein muss. SecretStrverbirgt den Token, wenn du die Einstellungen ausgibst oder loggst. Den echten Wert liest du mitsettings.discord_token.get_secret_value().- Auf Square Cloud legst du die Variablen im Dashboard oder mit
squarecloud app env setfest und trägstpydantic-settingsin deinerequirements.txtein. Siehe Umgebungsvariablen.
Nächste Schritte
Umgebungsvariablen
Lege die Variablen fest, die deine Settings-Klasse liest.
FastAPI
Deploye eine API, die ihre Anfragen mit Pydantic validiert.
Discord-Bot
Hoste einen Bot, der seinen Token aus der Umgebung liest.
Hat dir dieser Artikel gefallen?
- Wir haben diesen Inhalt mit großer Sorgfalt erstellt, um dir die bestmögliche Hilfe zu bieten. Wenn dir dieser Artikel in irgendeiner Weise geholfen hat, unterstütze unsere Arbeit! Entwickler haben Square Cloud bereits mit 4,9/5 bei 402 Bewertungen auf Google und Trustpilot bewertet: hinterlasse auch deine! Sie hilft uns zu verstehen, was dir am wichtigsten ist.
Google Reviews
Hinterlasse deine Bewertung bei Google Reviews.
Trustpilot
Hinterlasse deine Bewertung bei Trustpilot.

