Flask-Konfigurationsverwaltung

FlaskFlaskBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du, wie du Konfigurationen in einer Flask-Anwendung behandelst. Mit der Konfiguration kannst du Einstellungen in deiner Anwendung basierend auf verschiedenen Umgebungen ändern, wie z. B. das Umschalten des Debug-Modus, das Festlegen von Geheimschlüsseln und andere umgebungsabhängige Variablen.

Hinweis: Du musst die Code-Datei selbst erstellen und sie in der Umgebung ausführen. Du kannst den Status des Flask-Diensts auf Web 5000 vorab anzeigen.

Erstelle eine Flask-Anwendung

Zunächst erstellen wir eine einfache Flask-Anwendung. Erstelle eine Datei namens app.py und füge den folgenden Code hinzu:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

Um die Anwendung auszuführen, führe den folgenden Befehl in deiner Konsole aus:

python app.py

Öffne deinen Webbrowser und besuche http://localhost:5000, um die Nachricht "Hello, Flask!" zu sehen.

Grundlegende Konfiguration

Fügen wir nun einigen grundlegenden Konfigurationen zu unserer Flask-Anwendung hinzu. In derselben Datei app.py fügen wir folgenden Code hinzu:

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecretkey'

Die DEBUG-Konfiguration aktiviert den Debug-Modus, der während der Entwicklung hilfreiche Fehlermeldungen liefert. Die SECRET_KEY-Konfiguration wird verwendet, um Sitzungscookies sicher zu signieren und andere sicherheitsrelevante Anforderungen zu erfüllen.

Um auf die Konfigurationswerte zuzugreifen, kannst du das app.config-Dictionary verwenden. Beispielsweise um den Wert von SECRET_KEY auszugeben, füge folgenden Code der hello-Route hinzu:

@app.route('/')
def hello():
    secret_key = app.config['SECRET_KEY']
    return f'Hello, Flask! Secret Key: {secret_key}'

Starte die Flask-Anwendung neu und besuche http://localhost:5000, um die aktualisierte Nachricht mit dem Geheimschlüssel zu sehen.

Konfiguration aus Dateien

Das Hardcodieren von Konfigurationswerten im Code ist nicht ideal, insbesondere für sensible Informationen. Flask bietet eine Möglichkeit, die Konfiguration aus separaten Dateien zu laden. Erstelle eine neue Datei namens config.py und füge folgenden Code hinzu:

DEBUG = False
SECRET_KEY ='myothersecretkey'

In der Datei app.py ersetze den vorherigen Konfigurationscode durch folgenden:

app.config.from_object('config')

Die from_object-Methode lädt die Konfiguration aus dem config-Modul. Jetzt werden die DEBUG- und SECRET_KEY-Werte aus der config.py-Datei geladen.

Starte die Flask-Anwendung neu und besuche http://localhost:5000, um die aktualisierte Nachricht mit den neuen Konfigurationswerten zu sehen.

Umgebungsbasierte Konfiguration

Es ist üblich, unterschiedliche Konfigurationen für verschiedene Umgebungen wie Entwicklung, Produktion und Testing zu haben. Flask ermöglicht es dir, die Konfigurationen basierend auf Umgebungsvariablen zu wechseln. Erstelle eine neue Datei namens config_dev.py und füge folgenden Code hinzu:

DEBUG = True
SECRET_KEY = 'devsecretkey'

Erstelle eine weitere Datei namens config_prod.py mit folgendem Code:

DEBUG = False
SECRET_KEY = 'prodsecretkey'

In der Datei app.py ersetze den vorherigen Konfigurationscode durch folgenden:

import os

if os.environ.get('FLASK_ENV') == 'production':
    app.config.from_object('config_prod')
else:
    app.config.from_object('config_dev')

Die Umgebungsvariable FLASK_ENV wird verwendet, um die Umgebung zu bestimmen. Wenn sie auf 'production' gesetzt ist, wird die Produktionskonfiguration geladen; andernfalls wird die Entwicklungs-Konfiguration geladen.

Setze die Umgebungsvariable FLASK_ENV auf 'production' und starte die Flask-Anwendung neu. Besuche http://localhost:5000, um die aktualisierte Nachricht mit den Produktionskonfigurationswerten zu sehen.

Instanzordner

Flask bietet einen Instanzordner zum Speichern von Konfigurationsdateien, die für eine bestimmte Bereitstellung spezifisch sind. Dadurch kannst du die für die Bereitstellung spezifischen Konfigurationen von dem Rest deines Codes trennen. Standardmäßig verwendet Flask einen Ordner namens instance im selben Verzeichnis wie deine Anwendung.

Erstelle einen neuen Ordner namens instance im selben Verzeichnis wie deine app.py-Datei. Im instance-Ordner erstelle eine Datei namens config.cfg und füge folgenden Code hinzu:

DEBUG = True
SECRET_KEY = 'instancekey'

In der app.py-Datei füge folgenden Code vor dem Konfigurationscode hinzu:

app.instance_path = os.path.abspath(os.path.dirname(__file__))
app.config.from_pyfile('config.cfg')

Der instance_path wird auf den absoluten Pfad des instance-Ordners gesetzt. Die from_pyfile-Methode lädt die Konfiguration aus der config.cfg-Datei im Instanzordner.

Starte die Flask-Anwendung neu und besuche http://localhost:5000, um die aktualisierte Nachricht mit den Instanz-Konfigurationswerten zu sehen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie die Konfiguration in einer Flask-Anwendung verwalten. Sie haben gelernt, wie Sie grundlegende Konfigurationswerte festlegen, die Konfiguration aus Dateien laden, die Konfiguration basierend auf Umgebungsvariablen wechseln und einen Instanzordner für die für die Bereitstellung spezifischen Konfigurationen verwenden. Die Konfiguration ist ein wichtiger Aspekt beim Aufbau robuster und flexibler Flask-Anwendungen.