python flask.request如何接收参数

用不同的方式请求,需要用不同的方法接收参数。可在接受到参数时,将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":"检查记录表"}

其他方式不一一说明,根据对应打印结果接受即可。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值