回答问题

之前我问Flask请求中如何获取接收到的数据,因为request.data是空的。答案解释说request.data是原始帖子正文,但如果解析表单数据,它将为空。如何无条件获得原始帖子正文?

@app.route('/', methods=['POST'])
def parse_request():
    data = request.data  # empty in some cases
    # always need raw data here, not parsed form data

Answers

使用request.get_data()获取原始数据,无论内容类型如何。数据被缓存,后续可以随意访问request.datarequest.jsonrequest.form

如果你先访问request.data,它会先调用get_data,带参数解析表单数据。如果请求具有表单内容类型(multipart/form-dataapplication/x-www-form-urlencodedapplication/x-url-encoded),则将使用原始数据。在这种情况下request.datarequest.json将显示为空。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐