如何使用flask + Gevent-socketio工作werkzeug /自定义错误页面

时间:2012-12-20 02:25:45

标签: python exception-handling flask werkzeug gevent-socketio

我有一个烧瓶+ Gevent-socketio迷你网站。推出:

app = Flask(__name__)
app.debug = True

@werkzeug.serving.run_with_reloader
def runServer():
    print 'Listening on %s...' % WEB_PORT
    ws = SocketIOServer(('0.0.0.0', WEB_PORT),
        SharedDataMiddleware(app, {}),
        resource="socket.io",
        policy_server=False)

    ws.serve_forever()

但是,当我的视图中发生错误时,它会输出

<pre style="word-wrap: break-word; white-space: pre-wrap;">Internal Server Error</pre>

而不是显示werkzeug调试器。此外,我的自定义@app.errorhandler(500)未被调用。

使用Gevent-socketio,定期烧瓶网站正常运行。

我想知道什么是处理错误并取消默认的烧瓶行为......

2 个答案:

答案 0 :(得分:2)

我最近解决了这个问题,可以修改Werkzeug debuggger以使用socket.io命名空间(并且自动重新加载也可以),请看这里并享受:

https://github.com/aldanor/SocketIO-Flask-Debug

答案 1 :(得分:1)

要查看werkzeug调试器,您必须使用标准中间件堆栈为默认服务器提供所有http请求。

但是你为服务websockets请求启动了单独的SocketIOServer。

example for flask and gevent_socketio usage