Einführung
In diesem Tutorial-Labor führen wir Sie durch die Verwendung von Matplotlib in einem Flask-Webanwendungsserver. Sie werden lernen, wie Sie Figuren mit dem .Figure-Konstruktor erstellen und in in-memory-Puffer speichern, die resultierenden Figuren in die HTML-Ausgabe einbetten und die Flask-Anwendung mit dem flask-Befehlszeilentool ausführen.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Abhängigkeiten installieren
Bevor wir beginnen, stellen Sie sicher, dass Sie die erforderlichen Pakete installiert haben. Sie können sie mit pip installieren.
pip install matplotlib flask
Abhängigkeiten importieren
In diesem Schritt importieren wir die erforderlichen Abhängigkeiten. Wir werden base64 verwenden, um die Bilddaten zu kodieren, BytesIO, um die Bilddaten im Speicher zu speichern, Flask, um den Webanwendungsserver zu erstellen, und Figure, um die Figuren zu erstellen.
import base64
from io import BytesIO
from flask import Flask
from matplotlib.figure import Figure
Flask-Anwendung erstellen
In diesem Schritt erstellen wir die Flask-Anwendung. Wir definieren eine Route für die Startseite ("/") und eine Funktion, um die Matplotlib-Figur zu generieren und einzubetten.
app = Flask(__name__)
@app.route("/")
def home():
## Generieren Sie die Figur **ohne die Verwendung von pyplot**.
fig = Figure()
ax = fig.subplots()
ax.plot([1, 2])
## Speichern Sie sie in einem temporären Puffer.
buf = BytesIO()
fig.savefig(buf, format="png")
## Betten Sie das Ergebnis in die HTML-Ausgabe ein.
data = base64.b64encode(buf.getbuffer()).decode("ascii")
return f"<img src='data:image/png;base64,{data}'/>"
Flask-Anwendung ausführen
In diesem Schritt führen wir die Flask-Anwendung mit dem flask-Befehlszeilentool aus. Angenommen, das Arbeitsverzeichnis enthält dieses Skript, führen Sie den folgenden Befehl aus, um den Server zu starten:
FLASK_APP=matplot_lib_tutorial_lab flask run
Ausgabe anzeigen
In diesem Schritt werden wir die Ausgabe der Flask-Anwendung anzeigen, indem wir in einem Webbrowser zu http://localhost:5000/ navigieren. Die Matplotlib-Figur sollte auf der Seite angezeigt werden.
Zusammenfassung
In diesem Tutorial-Labor haben wir gelernt, wie man Matplotlib in einem Flask-Webanwendungsserver verwendet. Wir haben eine Flask-Anwendung erstellt, eine Matplotlib-Figur generiert, die Figur in die HTML-Ausgabe eingebettet und die Flask-Anwendung mit dem flask-Befehlszeilentool ausgeführt.