Verwenden Sie pydantic beim Lesen von Umgebungsvariablen in Python

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.

Einführung in Pydantic

Umgebungsvariablen lesen

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)

Verwenden Sie dotenv

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()

Detailliertere Funktionen

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

Verwenden Sie pydantic beim Lesen von Umgebungsvariablen in Python
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
Behandeln Sie Umgebungsvariablen in Python
[Python] Verwenden Sie und und oder beim Erstellen von Variablen
Verweisen auf Umgebungsvariablen in Python in Blender
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie Python in Ihrer Umgebung von Win Automation
virtuelle Umgebung in Python
Verwenden Sie jupyter-lab, das in einer virtuellen Python-Umgebung (venv) installiert ist.
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
[Frage] Was passiert, wenn Sie% in Python verwenden?
Ruft Umgebungsvariablen in Python ab, andernfalls legen Sie Standardwerte fest
Verwenden Sie CASA Toolkit in Ihrer eigenen Python-Umgebung
Verwenden Sie communic (), wenn Sie eine Ausgabe in einem Python-Unterprozess empfangen
Umgebungsvariablen bei Verwendung von Tkinter
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie Anaconda in einer Pyenv-Umgebung
Verwenden Sie das Messprotokoll mit Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Verwenden Sie Random Forest mit Python
HTTP-Umgebungsvariablen in Flask
Verwenden Sie Spyder von Python IDE
Achtung bei os.mkdir in Python
Verwenden Sie Stoff wie in Python (Stoff3)
In Python-Klassenvariablen versteckte Landminen
Verhalten beim Auflisten in Python heapq
Installieren Sie Scrapy in einer Python Anaconda-Umgebung
Verwendung von SQLite in Python
Beim Lesen der C ++ - Struktur mit Cython
Verwenden Sie rospy mit virtualenv in Python3
Verwendung globaler Variablen in Python-Funktionen
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwenden Sie die django-debug-Symbolleiste in der VirtualBox / Vagrant-Umgebung
Lesen und Schreiben von Text in Python
Verwenden Sie gcc-4.2 beim Kompilieren von Python (MacOS)
Bei Verwendung regulärer Ausdrücke in Python
Beim Schreiben eines Programms in Python
Verwendung von Umgebungsvariablen für Serverless Framework und Python und Verwaltung von Phasen
Installieren Sie Networkx in der Python 3.7-Umgebung zur Verwendung in Malware Data Science-Büchern
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
[Python3] Definieren Sie globale Variablen in einer Funktion dynamisch
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwenden Sie print in Python2 lambda expression
Verwenden Sie Tensorflow in einer wurzellosen Umgebung
Methode zum Erstellen einer Python-Umgebung in Xcode 6
Verwenden Sie smbus mit python3 in einer pyenv-Umgebung
Dynamisches Definieren von Variablen in Python
Verwenden von venv in der Windows + Docker-Umgebung [Python]