Ich entwickle eine Flask-App mit Google App Engine und teste sie auf meinem lokalen Computer mit dem lokalen Entwicklungsserver (z. B. dev_appserver.py
).Anzeigen von Python-Tracebacks von Google App Engine im lokalen Entwicklungsserver aufgrund eines Fehlers in der Flask-Route
Wenn meine App eine Laufzeitausnahme auf der obersten Ebene des app.py-Skripts feststellt, sehe ich das Traceback im Terminal unter dev_appserver.py
. Wenn die Ausnahme jedoch innerhalb einer Flask-Route auftritt, scheint es, als ob der Dev-Server die Ausnahme abfängt und verarbeitet. Alles, was ich in der Terminal-Ausgabe sehen kann, ist, dass die Route einen 500-Antwort-Status zurückzugibt:
INFO 2017-06-20 13:18:31,998 devappserver2.py:116] Skipping SDK update check.
INFO 2017-06-20 13:18:32,025 api_server.py:297] Starting API server at: http://localhost:43843
INFO 2017-06-20 13:18:32,037 dispatcher.py:209] Starting module "default" running at: http://localhost:8080
INFO 2017-06-20 13:18:32,037 admin_server.py:116] Starting admin server at: http://localhost:8000
INFO 2017-06-20 13:18:36,048 module.py:809] default: "GET /cron/batch/basket HTTP/1.1" 500 291
Ein hacky Weg I ist die Zurückverfolgungs lokalisieren kann durch dev_appserver.py
das Flag --logs_path=sqlite.db
vorbei und dann den Inhalt der AppLogs
Tabelle sieht in die SQLite-Datei, die das Traceback enthält. Aber das ist kaum ein nützlicher Arbeitsablauf.
Wer weiß, wie ich die Rückverfolgung für eine Ausnahme im Umgang mit einer Flask-Route bekommen kann?
I 'dev_appserver.py' in einem Terminal-Fenster starten und die Protokolle in diesem Fenster streamen. Standardmäßig enthalten die Protokolle dort alle Tracebacks. Was genau sehen Sie im Terminalfenster? –
Interessant. Ich habe die Frage mit der Ausgabe aktualisiert, die die Startprotokollierung und die GET-Anforderung an die Route mit dem Fehler enthält. – nedned
Das ist, wo ich Tracebacks sehe. Fügen Sie Ihrem Code "assert False" hinzu und prüfen Sie, ob dadurch ein Traceback angezeigt wird. –