Skip to main content

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.BaseModel erben lassen, um mit der Validierung zu beginnen. In unserem Beispiel erstellen wir eine Klasse namens Person, die einen Namen, ein Alter und eine E-Mail-Adresse hat.
  • Wenn wir diese Klasse instanziieren, validiert Pydantic, dass name und email Strings sind und age eine 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 age der String "19", wird daraus die Ganzzahl 19. Nun senden wir fehlerhafte Daten, um zu bestätigen, dass unsere Validierung funktioniert.
  • Das obige Beispiel löst einen ValidationError aus, da age eine 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/except ab. Seine Methode errors() listet jedes ungültige Feld auf:

Strict Mode

  • Wenn du auch Strings wie "19" ablehnen möchtest, aktiviere den Strict Mode im Modell. Dann akzeptiert age nur ein echtes int, und Person(name="John", age="19", email="john@example.com") löst ValidationError aus.

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" an age senden, wird er in das int 19 umgewandelt.
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 Typ EmailStr hinzu, der das Format user@domain.tld validiert und die Adresse normalisiert.

Umgebungsvariablen beim Start validieren

  • Bots und APIs lesen Tokens und Einstellungen aus Umgebungsvariablen. Mit pydantic-settings stoppt 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 BaseSettings erbt. Jedes Feld liest die gleichnamige Umgebungsvariable, ohne auf Groß- und Kleinschreibung zu achten: discord_token liest DISCORD_TOKEN.
settings.py
  • Ist DISCORD_TOKEN nicht gesetzt, löst Settings() für discord_token einen ValidationError mit der Meldung Field required aus. Ein Wert wie PORT=abc schlägt genauso fehl, da port eine Ganzzahl sein muss.
  • SecretStr verbirgt den Token, wenn du die Einstellungen ausgibst oder loggst. Den echten Wert liest du mit settings.discord_token.get_secret_value().
  • Auf Square Cloud legst du die Variablen im Dashboard oder mit squarecloud app env set fest und trägst pydantic-settings in deine requirements.txt ein. 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.