gpt4 book ai didi

post - 为什么我的 Flask 请求对象总是空的?

转载 作者:行者123 更新时间:2023-12-03 10:09:49 25 4
gpt4 key购买 nike

我正在创建一个愚蠢的端点,它只记录发布的数据。

@app.route("/add_foo", methods=['POST'])
def add_foo():
logger.debug(request.data)
print(request.args.get('foo'))
return "Success"

然后我尝试将数据发布到此端点:
>>> import requests
>>> r = requests.post("http://127.0.0.1:8080/add_foo", data={'foo': 'foobar'})

我看到以下输出:
 * 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 -

有趣的是,当我通过 curl 发布数据时,我看到了同样的事情。这是我的 curl 命令:
curl -XPOST -d "{'foo': 'foobar'}" "http://localhost:8080/add_foo"

发布的数据有什么问题?

最佳答案

request.args访问 URL 查询参数,URL 中的参数,在一个 ? 之后.您正在将值发布到请求正文中,因此请使用 request.form反而。

来自 Request Object section在 Flask 快速入门中:

To access form data (data transmitted in a POST or PUT request) you can use the form attribute.

[...]

To access parameters submitted in the URL (?key=value) you can use the args attribute[.]



您也可以使用 request.values object ,它结合了来自 request.args 的数据和 request.form对象; args之前搜索过 form .

关于post - 为什么我的 Flask 请求对象总是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38637249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com