Flask request.args vs request.form
我的理解是, request.args
在瓶包含从编码到URL参数GET
请求,而request.form
包含POST
数据。 我很难掌握的是为什么发送POST
请求时,试图通过request.form
访问数据会返回一个400
错误,但是当我尝试使用request.args
访问它时,它似乎工作正常。
我试着用Postman
和curl
发送请求,结果是一样的。
curl -X POST -d {"name":"Joe"} http://127.0.0.1:8080/testpoint --header "Content-Type:application/json"
码:
@app.route('/testpoint', methods = ['POST'])
def testpoint():
name = request.args.get('name', '')
return jsonify(name = name)
您正在POST POST JSON, request.args
和request.form
都不起作用。
仅当您使用正确的内容类型发布数据时, request.form
才有效; 表单数据可以使用application/x-www-form-urlencoded
或multipart/form-data
编码进行发布。
当你使用application/json
,你不再发布表单数据。 使用request.get_json()
来访问JSON POST数据:
@app.route('/testpoint', methods = ['POST'])
def testpoint():
name = request.get_json().get('name', '')
return jsonify(name = name)
curl中的json数据是错误的,所以Flask不解析要形成的数据。
像这样发送数据: '{"name":"Joe"}'
curl -X POST -d '{"name":"Joe"}' http://example.com:8080/testpoint --header "Content-Type:application/json"
链接地址: http://www.djcxy.com/p/22149.html
上一篇: Flask request.args vs request.form
下一篇: encode POST data?