Отладчик CherryPy + Werkzeug?

Я сравнивал CherryPy и Flask, когда наткнулся на отладчик Werkzeug, который мне очень нравится. Что меня удивляет:

Можно ли интегрировать отладчик Werkzeug в CherryPy? Если да: как?

Когда я попытался интегрировать его самостоятельно, у меня заработала консоль (/console), но не обработчик исключений.

EDIT: кажется, что CherryPy перехватывает ошибки и обрабатывает их до того, как их получит Werkzeug.


person msiemens    schedule 22.08.2012    source источник


Ответы (1)


В своем редактировании я описал, что 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, и этот хак мне сработал.

person msiemens    schedule 22.08.2012
comment
Просто для протокола я написал сообщение, связанное с этим вопросом. . - person cyraxjoe; 09.05.2013