用不同的方式请求,需要用不同的方法接收参数。可在接受到参数时,将request的所有成员变量输出,查看需要接受的参数值的存储位置。
@app.route('/',methods=['POST'])
def getAbstractProp():
print("form:",request.form)
print("data:",request.data)
print("values:",request.values)
print("args:",request.args)
print("json:",request.json)
return "success"
(以使用python的requests包进行请求为例)
当使用问号形式传值时:
res = requests.post("http://localhost:5000/?prop=门诊号&table=检查记录表")
print(res.text)
打印结果:
form: ImmutableMultiDict([])
data: b''
values: CombinedMultiDict([ImmutableMultiDict([('prop', '门诊号'), ('table', '检查记录表')]), ImmutableMultiDict([])])
args: ImmutableMultiDict([('prop', '门诊号'), ('table', '检查记录表')])
json: None
这里可以使用args变量接收参数
@app.route('/',methods=['POST'])
def getAbstractProp():
# 通过问号的形式传递参数时写法,例如百度:http://127.0.0.1:5000/d/?wd=%E7%AE%80%E4%B9%A6&pn=20
prop_name = request.args.get('prop')
table_name = request.args.get('table')
return {"prop_name":prop_name,"table_name":table_name}
{"prop_name":"门诊号","table_name":"检查记录表"}
当使用json传递参数时:
headers = {'content-type': 'application/json'}
info = {"prop":"门诊号","table":"检查记录表"}
res = requests.post("http://localhost:5000", data = json.dumps(info), headers = headers)
print(res.text)
打印结果:
form: ImmutableMultiDict([])
data: b'{"prop": "\\u95e8\\u8bca\\u53f7", "table": "\\u68c0\\u67e5\\u8bb0\\u5f55\\u8868"}'
values: CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([])])
args: ImmutableMultiDict([])
json: {'prop': '门诊号', 'table': '检查记录表'}
可以使用json变量接收参数:
@app.route('/',methods=['POST'])
def getAbstractProp():
prop_name = request.json['prop']
table_name = request.json['table']
return {"prop_name":prop_name,"table_name":table_name}
{"prop_name":"门诊号","table_name":"检查记录表"}
其他方式不一一说明,根据对应打印结果接受即可。