我想在flask应用程序中发送本地REST请求,如下所示:
from flask import Flask, url_for, request
import requests
app = Flask(__name__)
@app.route("/<name>/hi", methods=["POST"])
def hi_person(name):
form = {"name": name}
return requests.post(url_for("hi", _external=True), data=form)
@app.route("/hi", methods=["POST"])
def hi():
return 'Hi, %s!' % request.form["name"]
发送curl -X POST http://localhost:5000/john/hi
导致整个烧瓶应用程序冻结。当发送终止信号时,出现管道错误。有什么办法可以防止烧瓶冻结?
在能够处理并发请求(可能是gunicorn或uWSGI)的适当WSGI服务器下运行flask应用程序,它将起作用。在开发时,请使用以下命令在Flask提供的服务器中启用线程:
app.run(threaded=True)
但请注意,不建议将Flask服务器用于生产环境。从Flask
1.0开始,threaded
默认情况下处于启用状态flask
,实际上,您想使用命令行上的命令来运行您的应用程序。
发生的情况是,使用请求您正在向烧瓶应用程序发出 第二个 请求,但是由于它仍在忙于处理第一个请求,因此只有在完成第一个请求后,它才会响应第二个请求。
顺便说一下,在Python 3下,socketserver实现可以更优雅地处理断开连接,并继续提供服务而不是崩溃。
问题内容: 我想在flask应用程序中发送本地REST请求,如下所示: 发送curl -X POST http://localhost:5000/john/hi导致整个烧瓶应用程序冻结。当我发送一个终止信号时,我得到一个坏的管道错误。有什么办法可以防止flask冻结? 问题答案: 在能够处理并发请求(可能是gunicorn或uWSGI)的适当WSGI服务器下运行flask应用程序,它将起作用。在开
来自客户端网页的数据作为全局请求对象发送到服务器。要处理请求数据,请求对旬应该从Flask模块导入。 请求对象的重要属性如下所列 - - 它是包含表单参数及其值的键和值对的字典对象。 - 解析问号()后的URL部分查询字符串的内容。 - 保存Cookie名称和值的字典对象。 - 与上传文件有关的数据。 - 当前请求方法。
问题内容: 我尝试了python 请求库文档中提供的示例。 使用,我得到了响应代码,但是我想获得所请求的每个页面的内容。例如,这不起作用: 问题答案: 注意 下面的答案是不适用于请求v0.13.0 +。编写此问题后,异步功能已移至。但是,你可以将其替换为下面的内容,它应该可以工作。 我已经留下了这个答案,以反映原始问题,即有关使用请求的问题。 要异步执行多个任务,你必须: 为每个对象定义一个函数(
上周六,我们开始遇到管道破裂的问题,每天清晨都有一个通过石英调度器运行的作业。下面是一些细节。 该作业由一个本地java类组成,该类调用基于Talend的作业。每个基于Talend的作业都会出现断管错误。奇怪的是,当我运行通过调度程序提交的同一个java类时,不会抛出错误,作业也会成功运行。此外,该作业流在Tomcat中运行。 我应该在Talend jobs中做些什么,看看是否可以先建立连接?正如
我试图从一个网站下载所有pdf文件,但创建的每个pdf都已损坏。。。
问题内容: 我想仅使用本机Python库将JSON编码的数据发送到服务器。我喜欢请求,但我根本无法使用它,因为我无法在运行脚本的计算机上使用它。我需要没有它。 我的服务器是本地WAMP服务器。我总是得到一个 urllib.error.HTTPError:HTTP错误500:内部服务器错误 我 100%确信 这 不是 服务器问题,因为在同一台计算机上,同一台服务器上的同一数据,相同的url与请求库和