Flask / Werkzeug run_simple не отображает следы исключений
Я создал два приложения для фляги: интерфейс и Restapi (с колбой-отдыхом). Я создал следующий runserver.py для запуска их в разработке:
from werkzeug.wsgi import DispatcherMiddleware
from werkzeug.serving import run_simple
from restapi import app as restapi_app
from frontend import app as frontend_app
application = DispatcherMiddleware(frontend_app, {
'/api': restapi_app,
})
if __name__ == "__main__":
run_simple(
'localhost',
5000,
application,
use_reloader=True,
use_debugger=True,
use_evalex=True)
Несмотря на наличие use_debugger=True, всякий раз, когда один из ресурсов, восстанавливающих флягу, выдает ошибку, я не получаю след, только ошибка 500
{"status": 500, "message": "Internal Server Error"}
Любые идеи, как получить полный след для отображения? Дайте мне знать, если вам нужно больше деталей / код.
1 ответ
Решение
use_debugger
опция сервера Werkzeug WSGI включает только встроенный отладчик, сервер не знает о значениях конфигурации приложения Flask (DEBUG
в этом случае). Чтобы распространить исключения на сервер, вам нужно включить режим отладки для обоих объектов приложения Flask самостоятельно. Вот один из способов сделать это:
if __name__ == '__main__':
restapi_app.debug = True
frontend_app.debug = True
run_simple(...)