Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用flask+制作werkzeug/自定义错误页面;Gevent socketio_Python_Exception Handling_Flask_Werkzeug_Gevent Socketio - Fatal编程技术网

Python 如何使用flask+制作werkzeug/自定义错误页面;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,

我有一个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, {}),
        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不工作。