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(...)
Другие вопросы по тегам