CherryPy + Werkzeug调试器?

时间:2012-08-22 11:34:22

标签: python debugging cherrypy werkzeug

当我遇到Werkzeug Debugger时,我正在比较CherryPy和Flask,我非常喜欢。让我感到奇怪的是:

是否可以将Werkzeug的调试器集成到CherryPy中?如果是这样的话:怎么样?

当我尝试自己集成它时,我让控制台工作(/console),但不是异常处理程序。

修改 在Werkzeug得到它们之前,似乎CherryPy会捕获错误并处理它们。

1 个答案:

答案 0 :(得分:3)

在我的编辑中,我描述了CherryPy捕获错误。在配置中throw_errors可以设置为True。对我来说,设置cherrypy._cprequest.Request.throw_errors = True就是这样做的。整个代码是:

import cherrypy
from cherrypy import wsgiserver

from werkzeug.debug import DebuggedApplication

class Root(object):

    @cherrypy.expose
    def index(self):
        return "Hello World :)"

    @cherrypy.expose
    def page(self):
        # Error:
        return self.self.self.pas

cherrypy._cprequest.Request.throw_errors = True

app = cherrypy.Application(Root(), script_name=None, config=None)
app = DebuggedApplication(app, evalex=True)

d = wsgiserver.WSGIPathInfoDispatcher({'/': app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8080), d)
try:
    server.start()
except KeyboardInterrupt:
    server.stop()

我敢肯定,有更好的方法可以做到这一点,但我是关于CherryPy的新手,这个黑客对我有用。