👉 Jetzt bei Amazon nach deinem nächsten Gaming PCs stöbern (Affiliate-Link – ich erhalte eine kleine Provision, für dich bleibt der Preis gleich)

 

In der heutigen digitalen Welt ist die Fähigkeit, Konfigurationsdaten dynamisch zu verwalten, entscheidend für die Erstellung flexibler und wartbarer Anwendungen. Oft stehen Entwickler vor der Herausforderung, mehrere Server-Endpunkte oder andere Konfigurationsdaten in einem zentralen Ort wie einer .env-Datei zu speichern und später effizient im Programm zu verarbeiten. In diesem Blog-Post lernen wir, wie man Multiline-Variablen aus einer .env-Datei in Python liest und verwendet, um eine Liste von Server-Endpunkten in einer Anwendung zu konfigurieren.

Problemstellung

Stellen Sie sich vor, Sie haben eine web_app-Anwendung, die mit mehreren Servern kommunizieren muss. Diese Server-Endpunkte sollen in einer .env-Datei aufbewahrt werden, um die Konfiguration flexibel und änderbar zu machen. Wie können Sie diese Multiline-Variablen effizient in Ihr Python-Programm einlesen und nutzen? Im Folgenden werden wir verschiedene Ansätze betrachten und umsetzen.

Voraussetzungen

Um das folgende Tutorial zu verfolgen, benötigen Sie Python 3 installiert auf Ihrem Rechner. Wir werden außerdem das Python-Modul python-dotenv verwenden. Installieren Sie es bei Bedarf mittels folgendem Befehl in Ihrem Terminal:

pip install python-dotenvCode-Sprache: Bash (bash)

Lösung

.env-Datei erstellen

Erstellen Sie eine .env-Datei in Ihrem Projektverzeichnis. Diese Datei wird die Konfigurationsdaten unserer Server-Endpunkte speichern. Die Server-Endpunkte werden in einer einzigen Variable namens SERVER_ENDPOINTS in Multiline-Technik gespeichert.

# .env-Datei

SERVER_ENDPOINTS="https://server1.example.com
https://server2.example.com
https://server3.example.com"Code-Sprache: Bash (bash)

Ein Python-Skript erstellen

Nun erstellen wir unser Python-Skript, das die Multiline-Variable aus der .env-Datei einliest. In diesem Skript verwenden wir das dotenv-Modul, um die Umgebungsvariablen zu laden.

# main.py

from dotenv import load_dotenv
import os

# Lade Variablen aus der .env-Datei
load_dotenv()

# Lese die Multiline-Variable ein
server_endpoints = os.getenv("SERVER_ENDPOINTS")

# Verarbeite die Multiline-Variable als Liste
if server_endpoints:
    # Die Methode str.splitlines() zerlegt die Multiline-Variable in eine Liste
    endpoints_list = server_endpoints.splitlines()
    print("Liste der Server-Endpunkte:")
    
    # Ausgabe der Server-Endpunkte mit Indices zur besseren Navigation
    for idx, endpoint in enumerate(endpoints_list):
        print(f"{idx + 1}: {endpoint}")
else:
    print("Keine Server-Endpunkte in der .env-Datei gefunden.")
Code-Sprache: Python (python)

Erläuterung

  • dotenv-Modul: Wir verwenden load_dotenv(), um die Umgebungsvariablen aus der .env-Datei in unsere Anwendung zu laden.
  • os.getenv(): Diese Funktion liest die Variable SERVER_ENDPOINTS aus der Datei.
  • splitlines(): Diese Methode spaltet den String auf Basis der Zeilenumbrüche und konvertiert ihn in eine Liste, was die Verarbeitung der einzelnen Server-Endpunkte erleichtert.

Alternativlösung: Verwenden von JSON

Ein alternativer Ansatz zur Speicherung der Endpunkte ist die Nutzung der JSON-Syntax innerhalb der .env-Datei. Dies kann nützlich sein, wenn Sie weitere Metadaten zu den Endpunkten speichern wollen.

# .env-Datei mit JSON

SERVER_ENDPOINTS='["https://server1.example.com", "https://server2.example.com", "https://server3.example.com"]'Code-Sprache: Bash (bash)

Neue Implementierung:

import json

# Einlesen der JSON-String-Variable
server_endpoints_json = os.getenv("SERVER_ENDPOINTS")

# Konvertieren des JSON-Strings in eine Python-Liste
try:
    endpoints_list = json.loads(server_endpoints_json)
    print("Liste der Server-Endpunkte (JSON-Format):")
    for idx, endpoint in enumerate(endpoints_list):
        print(f"{idx + 1}: {endpoint}")
except json.JSONDecodeError:
    print("Fehler beim Dekodieren der JSON-Daten.")Code-Sprache: PHP (php)

Zusammenfassung

Das Verwenden von Multiline-Variablen in .env-Dateien erleichtert die Organisation von Konfigurationsdaten erheblich. Ob durch Splitting oder JSON-Parsing – Python bietet praktische Möglichkeiten, diese Daten effizient in Anwendung zu bringen.

Weiterführende Links

Ich hoffe, dieser Blog-Post war hilfreich für Sie! Wenn Sie Fragen haben oder einen Kommentar abgeben möchten, hinterlassen Sie bitte eine Nachricht unten. Ihre Rückmeldungen sind willkommen!