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

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时发生的,常规的flask网站可以正常工作。

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

最佳答案

我最近解决了这个问题,可以将Werkzeug debuggger修改为与socket.io名称空间一起使用(并且自动重装也可以),请参见此处并享受:

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

关于python - 如何使用Flask + Gevent-socketio使werkzeug/自定义错误页面生效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13964385/

10-11 03:19
查看更多