Python 如何使用flask+制作werkzeug/自定义错误页面;Gevent socketio
我有一个flask+Gevent socketio迷你网站。推出:Python 如何使用flask+制作werkzeug/自定义错误页面;Gevent socketio,python,exception-handling,flask,werkzeug,gevent-socketio,Python,Exception Handling,Flask,Werkzeug,Gevent Socketio,我有一个flask+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,
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调试器,您必须在默认服务器上使用standart中间件堆栈为所有http请求提供服务 但是您为ServeWebSockets请求启动了单独的SocketIOServer
我最近解决了这个问题,Werkzeug Debugger可以修改为使用socket.io名称空间(自动重新加载也可以),请参见此处并欣赏:
我这样做了,但是被错误击中了:KeyError:“socketio”。我认为与有关,所以我回滚到几个socket.io客户端,但不工作。然而,如果我像以前一样离开它,那就是工作了。因此,使用此解决方案会导致错误和套接字io不工作。