eri*_*rip 4 post flask python-requests
我正在创建一个愚蠢的端点,它只记录发布的数据。
@app.route("/add_foo", methods=['POST'])
def add_foo():
logger.debug(request.data)
print(request.args.get('foo'))
return "Success"
Run Code Online (Sandbox Code Playgroud)
然后我尝试将数据发布到此端点:
>>> import requests
>>> r = requests.post("http://127.0.0.1:8080/add_foo", data={'foo': 'foobar'})
Run Code Online (Sandbox Code Playgroud)
我看到以下输出:
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
2016-07-28 08:59:22,432 - __main__ - DEBUG - b''
None
127.0.0.1 - - [28/Jul/2016 08:59:22] "POST /add_foo HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我通过 curl 发布数据时,我看到了同样的事情。这是我的 curl 命令:
curl -XPOST -d "{'foo': 'foobar'}" "http://localhost:8080/add_foo"
Run Code Online (Sandbox Code Playgroud)
发布的数据有什么问题?
request.args
访问URL 查询参数,即 URL 中的参数,在?
. 您正在将值 POST 到请求正文中,因此请request.form
改用。
从Flask 快速入门中的请求对象部分:
要访问表单数据(在 POST 或 PUT 请求中传输的数据),您可以使用该
form
属性。[...]
要访问在 URL (
?key=value
) 中提交的参数,您可以使用args
属性 [.]
你也可以使用request.values
object,它结合了来自request.args
和request.form
对象的数据;args
之前搜索过form
。
归档时间: |
|
查看次数: |
7177 次 |
最近记录: |