在Flask中,哪个arg覆盖了request.values中的另一个? (获取或发布)

时间:2018-09-27 06:30:18

标签: python flask

我不确定Flask的request.values组合字典中哪些值(GET或POST)优先。

示例:

@app.route('test', methods=['GET','POST'])
def test_url():
a = request.values.get(a)
# URL call has 'a' as GET parameter set to 'one'
# URL call also has 'a' as POST parameter set to 'two'
# which will my variable a contain if I call it as shown above?
print(a)

对于我的Flask应用程序的文档,我想知道这一点。

2 个答案:

答案 0 :(得分:2)

Flask的Request类是werkzeug的Request的子类。

正如seen in werkzeug source code一样,valuesCombinedMultiDict(获取参数)和args(POST参数)中的form,按此顺序。< / p>

着眼于CombinedMultiDict的{​​{3}},其__getitem__get方法尝试以与构造期间指定的相同顺序从底层dict获取密钥。

因此,对于Request.values,它将从GET返回值(如果存在),否则将从POST返回值。

答案 1 :(得分:1)

它将从GET返回值。