Flask-Debug-Modus
Wir werden mit dieser Erklärung ein paar Dinge lernen, die wir bekommen, wenn wir den Debug-Modus in Flask verwenden, und wie man eine Erweiterung verwendet, die eine Debugger-Symbolleiste bereitstellt.
Aktivieren Sie den Debug-Modus in Flask
Der Debug-Modus ist für Entwicklungsumgebungen. Wenn Sie Ihre App entwickeln, können Sie sie verwenden, aber wenn Sie eine Live-Version Ihrer App haben, möchten Sie den Debug-Modus deaktivieren.
Wir haben eine einfache Flask-App erstellt und den Debug-Modus innerhalb der run()
-Methode aktiviert.
from flask import Flask
app = Flask(__name__)
@app.route("/", methods=["GET"])
def Basic_DEBUG():
return "Hi there, debug mode is on"
if __name__ == "__main__":
app.run(debug=True)
Es gibt andere Möglichkeiten, dies zu tun, aber im Moment zeigen wir Ihnen diese einfache Möglichkeit, die Flask-App zu debuggen. Im nächsten Abschnitt lernen wir eine andere Methode zum Debuggen kennen.
Lassen Sie uns den Server mit dieser Datei starten, und wir können sehen, dass unser Server im Debug-Modus gestartet wird. Wenn wir nun eine Änderung an der Datei vornehmen möchten und diese gespeichert haben, erkennt der Debug-Modus die Änderungen und startet den Server automatisch neu.
Wir müssen dies nicht beenden und erneut starten. Wir müssen nur die Seite aktualisieren.
Mal sehen, was passiert, wenn etwas schief geht, während das Debugging aktiv ist. Lassen Sie uns eine Ausnahme auslösen:
from flask import Flask
app = Flask(__name__)
@app.route("/", methods=["GET"])
def Basic_DEBUG():
CHECK = 6 / 0
return "Hi there, debug mode is on"
if __name__ == "__main__":
app.run(debug=True)
Wenn wir es speichern und die Seite aktualisieren, wirft es einen ZeroDivisionError
und wir können ein Traceback darüber sehen, wo es fehlgeschlagen ist. Wir können die Quelle sehen, wo es fehlgeschlagen ist; Wenn wir hier klicken, zeigt es uns die Quelle und hat einen interaktiven Modus.
Es öffnet sich eine kleine Konsole, und Sie können hier einige Änderungen vornehmen und sehen, warum Sie dies in einer Produktionsumgebung nicht möchten, da jeder den Code hier einfach ausführen kann.
Rendern Sie das Debugger-Tool mit Hilfe von DebugToolbarExtension
Wir werden demonstrieren, wie das funktioniert und wo wir es nützlich finden, wenn wir unsere Flask-Apps entwickeln. Wir müssen dieses Paket zuerst mit dem folgenden Befehl installieren.
pip install flask-debugtoolbar
Sobald das installiert ist, müssen wir es in der Flask-App einrichten; Es ist eine visuelle Symbolleiste und arbeitet mit einer Vorlage. Sie können dies nur verwenden, wenn Sie Jinja-Vorlagen verwenden. Deshalb werden wir render_template()
einschließen und eine HTML-Datei erstellen.
Jetzt werden wir uns mit der Debug-Toolbar-Erweiterung befassen. Um es zu verwenden, müssen wir als erstes DebugToolbarExtension
importieren; Dann müssen wir ein paar Konfigurationen vornehmen.
Wir werden die Eigenschaft debug
gleich True
setzen, und wir müssen dies deklarieren, bevor wir die Symbolleiste instanziieren. Dann ist der andere Konfigurationswert, den wir brauchen, ein SECRET_KEY
.
Dann müssen wir die Debug-Symbolleiste namens DebugToolbarExtension()
instanziieren und an die App übergeben.
TBAR = DebugToolbarExtension(app)
Sobald wir die Debug-Symbolleiste instanziiert haben, wird die Symbolleiste automatisch in jede Vorlage eingefügt, die Sie als Antwort zurückgegeben haben.
from flask import Flask, render_template
from flask_debugtoolbar import DebugToolbarExtension
app = Flask(__name__)
app.debug = True
app.config["SECRET_KEY"] = "TEST_KEY"
TBAR = DebugToolbarExtension(app)
@app.route("/", methods=["GET"])
def DEBUG_ToolBar():
return render_template("index.html")
if __name__ == "__main__":
app.run()
Wenn wir die Seite aktualisieren, erscheint die Symbolleiste auf der rechten Seite. Es zeigt uns eine Reihe nützlicher Dinge, die wir beim Debuggen benötigen können.
Das erste sind Versionen; Es sagt uns, welche Version wir verwenden, und das nächste ist die Zeit, die uns sagt, wie lange es gedauert hat, diese Seite zu generieren. Sie können alle diese Variablen selbst erkunden.
Wir können sehen, wie nützlich diese Funktion ist, obwohl wir nicht in unseren Debugger in der Konsole oder den Entwicklertools des Browsers schauen müssen.
Quellcode der Vorlage:
<html>
<head>
<body>
<h1>Hi there, this is debug toolbar</h1>
</body>
</head>
</html>
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn