【问题标题】:Werkzeug and WebApp2 - debug display and console not workingWerkzeug 和 WebApp2 - 调试显示和控制台不工作
【发布时间】:2012-06-08 10:21:28
【问题描述】:

我想将 Werkzeug 用作本地开发服务器,但无法让 DebugApplication 中间件按文档说明工作 - Werkzeug Debugging。这里有什么问题?

import webapp2 
from system import config 
from werkzeug.debug import DebuggedApplication 
from werkzeug.serving import run_simple

application = webapp2.WSGIApplication(routes=config.routes, debug=False, config=config.options)  
debugged_application = DebuggedApplication(application)

def main():
    run_simple('localhost', 4000, debugged_application, use_reloader=True, use_debugger=True, threaded=True)

if __name__ == '__main__':
    main()

【问题讨论】:

    标签: webapp2 werkzeug


    【解决方案1】:

    我认为 DebuggedApplication 中间件试图实现与use_debugger=True 相同的效果,因此无需同时使用两者。问题是webapp2.WSGIApplication 在通过调试器中间件之前添加了自己的错误处理,因此禁止 werkzeug 调试器查看实际异常。

    我对此的解决方案是扩展 webapp2 提供的基本 WSGIApplication 以重新引发原始异常。它适用于 python 2.7,当且仅当在 Application 构造函数中将调试标志设置为 True 时才会传递异常。

    class Application(webapp2.WSGIApplication):
        def _internal_error(self, exception):
            if self.debug:
                raise
            return super(Application, self)._internal_error(exception)
    

    不确定这是最干净的方法,但它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      相关资源
      最近更新 更多