一尘不染

Flask应用收到“IOError: [Errno 32] Broken pipe”

flask

现在,我使用flask开发Web应用程序。

但是起初它运行良好,在操作了一段时间的网页后,我使用flask开发Web应用程序后端显示如下错误:

   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

我的应用程序在端口5000上运行app.run(debug=True,port=5000)

我使用nginx作为Web服务器,并proxy_pass http://127.0.0.1:5000在nginx配置文件中进行设置。

现在我真的不知道哪里出了问题,我使用的session['email'] = request.form['email']是其他文件email = session.get('email')

这种用法正确吗?如何设置会话有效期?

还是任何其他原因导致此错误?

然后我设置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

为什么呢?


阅读 739

收藏
2020-04-07

共1个答案

一尘不染

内置的werkzeug服务器无法处理远程终端,而该服务器仍在寻找其内容时关闭了连接。

代替 app.run(debug=True,port=5000)

尝试

from gevent.wsgi import WSGIServer
http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()

或者如果你使用的是nginx,与uwsgi一起使用

werkzeug我会争论这是一个问题

2020-04-07