Einführung
In diesem Lab lernen wir, wie wir eine Flask-Anwendung auf einen Server bereitstellen. Wir werden eine Distributionsdatei für unsere Anwendung erstellen und sie auf dem Server installieren. Das Lab setzt voraus, dass Sie über ein grundlegendes Verständnis von Flask, Python-Virtualen Umgebungen und der Befehlszeile verfügen.
Hinweis: Sie müssen die Code-Datei selbst erstellen und sie in der Umgebung ausführen. Sie können den Status des Flask-Diensts auf Web 5000 vorab anzeigen.
Die Anwendung erstellen
Zunächst müssen wir eine Wheel-Datei für unsere Anwendung erstellen. Dazu verwenden wir das build-Tool. Installieren Sie das build-Tool mit pip, wenn Sie es noch nicht getan haben:
## Installieren Sie das build-Tool
pip install build
Verwenden Sie nun das build-Tool, um die Wheel-Datei zu erstellen:
## Erstellen Sie die Wheel-Datei
python -m build --wheel
Die Wheel-Datei sollte sich im dist-Verzeichnis befinden und einen Namen wie flaskr-1.0.0-py3-none-any.whl haben.
Installieren Sie die Anwendung auf dem Server
Kopieren Sie die Wheel-Datei auf Ihren Server. Wenn Sie die Datei dort haben, erstellen Sie eine neue Python-Virtual-Umgebung und installieren Sie die Wheel-Datei mit pip:
## Installieren Sie die Wheel-Datei
pip install flaskr-1.0.0-py3-none-any.whl
Da dies eine neue Umgebung ist, müssen Sie die Datenbank erneut initialisieren:
## Initialisieren Sie die Datenbank
flask --app flaskr init-db
Geheimschlüssel konfigurieren
In einer Produktionsumgebung sollten Sie den Geheimschlüssel auf einen zufälligen Wert ändern. Um einen zufälligen Geheimschlüssel zu generieren, führen Sie den folgenden Befehl aus:
## Generieren Sie einen zufälligen Geheimschlüssel
python -c 'import secrets; print(secrets.token_hex())'
Erstellen Sie in einem config.py-Datei im Instanzordner und legen Sie SECRET_KEY auf den generierten Wert fest.
#.venv/var/flaskr-instance/config.py
SECRET_KEY = 'your_generated_secret_key'
Führen Sie die Anwendung mit einem Produktionsserver aus
Für eine Produktionsumgebung sollten Sie einen WSGI-Server statt des eingebauten Entwicklungsservers verwenden. Wir werden Waitress als unseren WSGI-Server verwenden.
Zunächst installieren Sie Waitress:
## Installieren Sie Waitress
pip install waitress
Nun sagen Sie Waitress, Ihre Anwendung zu servieren:
## Führen Sie die Anwendung mit Waitress aus
waitress-serve --call 'flaskr:create_app'
Zusammenfassung
In diesem Lab haben wir gelernt, wie man eine Flask-Anwendung auf einen Produktionsserver bereitstellt. Wir haben unsere Anwendung in eine Wheel-Datei gebaut, auf dem Server installiert, den Geheimschlüssel konfiguriert und die Anwendung mit einem produktionsfähigen WSGI-Server ausgeführt.