现在,我使用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),
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')。
session['email'] = request.form['email']
email = session.get('email')
这种用法正确吗?如何设置会话有效期?
还是任何其他原因导致此错误?
然后我设置app.run(debug=False,port=5000),它显示新的错误
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
为什么呢?
内置的werkzeug服务器无法处理远程终端,而该服务器仍在寻找其内容时关闭了连接。
代替 app.run(debug=True,port=5000)
尝试
from gevent.wsgi import WSGIServer http_server = WSGIServer(('', 5000), app) http_server.serve_forever()
或者如果你使用的是nginx,与uwsgi一起使用
werkzeug我会争论这是一个问题
werkzeug