如何使Werkzeug /使用烧瓶 gevent-socketio进行Werkzeug /自定义错误页面



我有一个烧瓶 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,常规烧瓶网站正常工作。

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

我最近解决了此问题,可以修改Werkzeug Debuggger以与socket.io namespaces一起使用(并且自动加载也将起作用),请参阅此处并享受:

https://github.com/aldanor/socketio-flask-debug

要查看Werkzeug调试器,您必须使用Standart Middleware stack提供默认服务器的所有HTTP请求。

但是您启动了单独的SoctedioServer用于服务WebSockets请求。

烧瓶和gevent_socketio的示例

最新更新