Browse Source
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Yurii Motov <[email protected]>pull/15909/head
committed by
GitHub
60 changed files with 318 additions and 284 deletions
@ -14,13 +14,13 @@ Um Umgebungsvariablen zu verstehen, können Sie [Umgebungsvariablen](../environm |
|||
|
|||
## Typen und Validierung { #types-and-validation } |
|||
|
|||
Diese Umgebungsvariablen können nur Text-Zeichenketten verarbeiten, da sie außerhalb von Python liegen und mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen wie Linux, Windows, macOS) kompatibel sein müssen. |
|||
Diese Umgebungsvariablen können nur Text-Strings verarbeiten, da sie außerhalb von Python liegen und mit anderen Programmen und dem Rest des Systems (und sogar mit verschiedenen Betriebssystemen wie Linux, Windows, macOS) kompatibel sein müssen. |
|||
|
|||
Das bedeutet, dass jeder in Python aus einer Umgebungsvariablen gelesene Wert ein `str` ist und jede Konvertierung in einen anderen Typ oder jede Validierung im Code erfolgen muss. |
|||
|
|||
## Pydantic `Settings` { #pydantic-settings } |
|||
|
|||
Glücklicherweise bietet Pydantic ein großartiges Werkzeug zur Verarbeitung dieser Einstellungen, die von Umgebungsvariablen stammen, mit [Pydantic: Settings Management](https://docs.pydantic.dev/latest/concepts/pydantic_settings/). |
|||
Glücklicherweise bietet Pydantic ein großartiges Werkzeug zur Verarbeitung dieser Einstellungen, die von Umgebungsvariablen stammen, mit [Pydantic: Settings-Verwaltung](https://docs.pydantic.dev/latest/concepts/pydantic_settings/). |
|||
|
|||
### `pydantic-settings` installieren { #install-pydantic-settings } |
|||
|
|||
@ -92,9 +92,9 @@ Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen S |
|||
|
|||
/// |
|||
|
|||
Und dann würde die Einstellung `admin_email` auf „[email protected]“ gesetzt. |
|||
Und dann würde die Einstellung `admin_email` auf `"[email protected]"` gesetzt. |
|||
|
|||
Der `app_name` wäre „ChimichangApp“. |
|||
Der `app_name` wäre `"ChimichangApp"`. |
|||
|
|||
Und `items_per_user` würde seinen Defaultwert von `50` behalten. |
|||
|
|||
@ -128,7 +128,7 @@ Ausgehend vom vorherigen Beispiel könnte Ihre Datei `config.py` so aussehen: |
|||
|
|||
{* ../../docs_src/settings/app02_an_py310/config.py hl[10] *} |
|||
|
|||
Beachten Sie, dass wir jetzt keine Standardinstanz `settings = Settings()` erstellen. |
|||
Beachten Sie, dass wir jetzt keine Defaultinstanz `settings = Settings()` erstellen. |
|||
|
|||
### Die Haupt-Anwendungsdatei { #the-main-app-file } |
|||
|
|||
@ -158,7 +158,7 @@ Bei der Abhängigkeitsüberschreibung legen wir einen neuen Wert für `admin_ema |
|||
|
|||
Dann können wir testen, ob das verwendet wird. |
|||
|
|||
## Lesen einer `.env`-Datei { #reading-a-env-file } |
|||
## Eine `.env`-Datei lesen { #reading-a-env-file } |
|||
|
|||
Wenn Sie viele Einstellungen haben, die sich möglicherweise oft ändern, vielleicht in verschiedenen Umgebungen, kann es nützlich sein, diese in eine Datei zu schreiben und sie dann daraus zu lesen, als wären sie Umgebungsvariablen. |
|||
|
|||
@ -172,7 +172,7 @@ Aber eine dotenv-Datei muss nicht unbedingt genau diesen Dateinamen haben. |
|||
|
|||
/// |
|||
|
|||
Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter [Pydantic Settings: Dotenv (.env) support](https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support). |
|||
Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter [Pydantic Settings: Dotenv (.env)-Unterstützung](https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support). |
|||
|
|||
/// tip | Tipp |
|||
|
|||
@ -197,13 +197,13 @@ Und dann aktualisieren Sie Ihre `config.py` mit: |
|||
|
|||
/// tip | Tipp |
|||
|
|||
Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter [Pydantic: Concepts: Configuration](https://docs.pydantic.dev/latest/concepts/config/). |
|||
Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter [Pydantic: Konzepte: Konfiguration](https://docs.pydantic.dev/latest/concepts/config/). |
|||
|
|||
/// |
|||
|
|||
Hier definieren wir die Konfiguration `env_file` innerhalb Ihrer Pydantic-`Settings`-Klasse und setzen den Wert auf den Dateinamen mit der dotenv-Datei, die wir verwenden möchten. |
|||
|
|||
### Die `Settings` nur einmal laden mittels `lru_cache` { #creating-the-settings-only-once-with-lru-cache } |
|||
### Die `Settings` nur einmal mittels `lru_cache` erstellen { #creating-the-settings-only-once-with-lru-cache } |
|||
|
|||
Das Lesen einer Datei von der Festplatte ist normalerweise ein kostspieliger (langsamer) Vorgang, daher möchten Sie ihn wahrscheinlich nur einmal ausführen und dann dasselbe Einstellungsobjekt erneut verwenden, anstatt es für jeden <abbr title="Request – Anfrage: Daten, die der Client zum Server sendet">Request</abbr> zu lesen. |
|||
|
|||
@ -291,7 +291,7 @@ Im Fall unserer Abhängigkeit `get_settings()` akzeptiert die Funktion nicht ein |
|||
|
|||
Auf diese Weise verhält es sich fast so, als wäre es nur eine globale Variable. Da es jedoch eine Abhängigkeitsfunktion verwendet, können wir diese zu Testzwecken problemlos überschreiben. |
|||
|
|||
`@lru_cache` ist Teil von `functools`, welches Teil von Pythons Standardbibliothek ist. Weitere Informationen dazu finden Sie in der [Python Dokumentation für `@lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache). |
|||
`@lru_cache` ist Teil von `functools`, welches Teil von Pythons Standardbibliothek ist. Weitere Informationen dazu finden Sie in der [Python-Dokumentation für `@lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache). |
|||
|
|||
## Zusammenfassung { #recap } |
|||
|
|||
|
|||
Loading…
Reference in new issue