Bei der Implementierung einer Anwendung ist der Umgang mit Umgebungsvariablen etwas mühsam, nicht wahr?
Bei der Implementierung in Python können Sie eine Bibliothek mit dem Namen pydantic verwenden, um Standardwerte festzulegen, in den Typ int umzuwandeln oder Werte aus .env
festzulegen. Sie können die Verarbeitung wie das Lesen einfach implementieren. In diesem Artikel werde ich diese Beispielcodes vorstellen.
Übrigens ist pydantic keine Bibliothek, die nur Umgebungsvariablen liest, sondern eine Bibliothek, mit der Sie Klassen mithilfe von Typanmerkungen definieren können. Beispielsweise können Sie Daten im JSON-Format in Klassen umwandeln und validieren. Wenn Sie alles über andere Funktionen lesen möchten, lesen Sie bitte den folgenden Artikel.
Angenommen, die folgenden Umgebungsvariablen sind festgelegt:
#Bash-Format
export REDIS_HOST_NAME=localhost
export REDIS_PORT=6379
Wenn Sie pydantic verwenden, können Sie es mit dem folgenden Code lesen.
from pydantic import BaseSettings
class Settings(BaseSettings):
redis_host_name: str
redis_port: int
settings = Settings()
print(settings.redis_host_name)
# => localhost
print(settings.redis_port)
# => 6379
print(type(settings.redis_port))
# => <class 'int'>
Wenn die Umgebungsvariable nicht festgelegt ist oder wenn die Typübertragung fehlschlägt, wird ein Validierungsfehler ausgegeben.
pydantic.error_wrappers.ValidationError: 1 validation error for Settings
redis_port
value is not a valid integer (type=type_error.integer)
Während der Entwicklung können Sie ein Dateiformat namens ".env" verwenden, um das Festlegen von Umgebungsvariablen zu vereinfachen. Dies ist ein Artikel auf node.js, aber ich denke, das ist leicht zu verstehen.
.Env-Datei anstelle der Umgebungsvariablen (dotenv) verwenden
Zuerst müssen Sie auch python-dotenv mit pip install python-dotenv
oder pip install pydantic [dotenv]
installieren.
Gegeben die folgende .env
Datei
.env
REDIS_HOST_NAME=localhost
REDIS_PORT=6379
Sie können es mit folgendem Code laden:
from pydantic import BaseSettings
class Settings(BaseSettings):
redis_host_name: str
redis_port: int
class Config:
env_file = '.env'
settings = Settings()
Ich denke, wir haben damit nützliche Funktionen für Umgebungsvariablen eingeführt, die häufig in der täglichen Entwicklung verwendet werden. Wenn Sie mehr wissen möchten, lesen Sie bitte den entsprechenden Artikel im offiziellen Dokument.
Settings management - pydantic
Recommended Posts