[英]Flask app get “IOError: [Errno 32] Broken pipe”
Now I use flask to develop web app. 现在我用flask来开发web应用程序。
But at first it works well,after operating web page for a while,the flask back-end shows error like these: 但最初它运行良好,在操作网页一段时间后,烧瓶后端显示如下错误:
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle
self.handle_one_request()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 251, in handle_one_request
return self.run_wsgi()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 193, in run_wsgi
execute(self.server.app)
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 184, in execute
write(data)
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 152, in write
self.send_header(key, value)
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 390, in send_header
self.wfile.write("%s: %s\r\n" % (keyword, value))
IOError: [Errno 32] Broken pipe
My app run on port 5000 app.run(debug=True,port=5000)
, 我的应用程序运行在端口5000
app.run(debug=True,port=5000)
,
I use nginx as web server,and set proxy_pass http://127.0.0.1:5000
in nginx config file. 我使用nginx作为Web服务器,并在nginx配置文件中设置
proxy_pass http://127.0.0.1:5000
。
Now I really don't know where is the wrong,I use session['email'] = request.form['email']
and in other file I use email = session.get('email')
. 现在我真的不知道哪里出错了,我使用
session['email'] = request.form['email']
,在其他文件中我使用email = session.get('email')
。
Is this usage right? 这种用法是对的吗? How to set session active period?
如何设置会话活动期?
or any other reason cause this error ? 或任何其他原因导致此错误?
then I set app.run(debug=False,port=5000)
,it shows new error 然后我设置
app.run(debug=False,port=5000)
,它显示新的错误
File "/usr/lib64/python2.6/SocketServer.py", line 671, in finish
self.wfile.flush()
File "/usr/lib64/python2.6/socket.py", line 303, in flush
self._sock.sendall(buffer(data, write_offset, buffer_size))
socket.error: [Errno 32] Broken pipe
why ? 为什么?
Please help me,thks. 请帮帮我,谢谢。
The built-in werkzeug server is not capable of handling the remote end closing the connection while the server is still churing its content out. 内置的werkzeug服务器无法处理远程端关闭连接,而服务器仍在修改其内容。
instead of app.run(debug=True,port=5000)
而不是
app.run(debug=True,port=5000)
try 尝试
from gevent.wsgi import WSGIServer
http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()
or if you are using nginx, use it with uwsgi as described here 或者如果你正在使用nginx的,与uwsgi使用它作为描述在这里
It is rather a werkzeug
issue I would argue 我认为这是一个
werkzeug
问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.