【问题标题】:Flask / Werkzeug run_simple not displaying Exception tracesFlask / Werkzeug run_simple 不显示异常跟踪
【发布时间】:2015-07-08 04:51:37
【问题描述】:

我创建了两个烧瓶应用程序:前端和restapi(带有flask-restful)。我创建了以下 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"}

任何想法如何让完整的跟踪显示?如果您需要更多详细信息/代码,请告诉我。

【问题讨论】:

  • 只是猜测,但您可能需要将两个应用程序对象的DEBUG 设置为True
  • 就是这样!让它成为一个答案,我会接受它。

标签: flask werkzeug flask-restful


【解决方案1】:

Werkzeug WSGI 服务器的use_debugger 选项仅启用嵌入式调试器,服务器不知道 Flask 应用程序配置值(在这种情况下为DEBUG)。要将异常传播到服务器,您需要自己为这两个 Flask 应用程序对象启用调试模式。这是一种方法:

if __name__ == '__main__':
    restapi_app.debug = True
    frontend_app.debug = True
    run_simple(...)

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2016-01-11
    相关资源
    最近更新 更多