当前位置: 首页 > 面试题库 >

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

储臻
2023-03-14
问题内容

现在,我使用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

为什么呢?


问题答案:

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

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

尝试

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

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

werkzeug我会争论这是一个问题



 类似资料:
  • 问题内容: 我有一个Flask Web应用程序,它使用render_template如下,我需要在响应中添加一个Content-Security-Policy作为附加的HTTP响应标头。我尝试了以下方法,但都失败了,并给了我500。 1。 2。 这里有什么问题? 在终端上,以localhost:3001的身份访问Web应用程序时,我看到以下内容 127.0.0.1–[2015年4月6日01:45:

  • 问题内容: 我正在尝试在Heroku上使用Flask开发我的第一个“大型”应用程序,并尝试将此处的基本教程与以下说明结合:https : //devcenter.heroku.com/articles/python与以下说明:http:// flask.pocoo.org/docs/patterns/packages/#larger- applications。它在本地与“先行启动”一起工作,但是

  • 主要内容:调试模式要测试Flask安装是否成功,在编辑器中输入以下代码,并保存到文件: 中。 在项目中导入模块是强制性的。 Flask类的一个对象是WSGI应用程序。 Flask构造函数将当前模块的名称()作为参数。 Flask类的函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。 rule 参数表示与该函数绑定的URL。 options 是要转发给底层Rule对象的参数列表。 在上面的例子中, URL

  • 没有经过测试的东西都是不完整的 这一箴言的起源已经不可考了,尽管他不是完全正确的,但是仍然离真理 不远。没有测试过的应用将会使得提高现有代码质量很困难,二不测试应用 程序的开发者,会显得特别多疑。如果一个应用拥有自动化测试,那么您就 可以安全的修改然后立刻知道是否有错误。 Flask 提供了一种方法用于测试您的应用,那就是将 Werkzeug 测试 Client 暴露出来,并且为您操作这些内容 的

  • 问题内容: 我希望能够将数据发送到我的Flask应用程序。我尝试访问,但是它是一个空字符串。你如何访问请求数据? 问题答案: 该文档描述的要求提供的属性。在大多数情况下,由于它用作后备广告,因此将为空: 如果传入的请求数据带有mimetype Flask无法处理,则将其包含为字符串。 :URL查询字符串中的键/值对 :正文中的键/值对,来自HTML帖子形式或非JSON编码的JavaScript请求

  • 问题内容: 我希望能够将数据发送到我的Flask应用程序。我尝试访问,但是它是一个空字符串。你如何访问请求数据? 问题答案: - request.data 如果传入的请求数据带有mimetype Flask无法处理,则将其包含为字符串。 request.args:URL查询字符串中的key/value request.form:正文中的key/value,来自HTML帖子形式或非JSON编码的请求