无法在Flask中设置表单数据的默认值

问题描述 投票:0回答:1

我有一个烧瓶路线,定义如下:

@app.route('/test/', methods=['POST'])
def test():
    number = request.form.get('my_number', 555) # number == ''
    return str(number)

如果在/test/为空/缺失的情况下向my_number发出POST请求,则我希望将局部变量number设置为555(默认值)。相反,number是空字符串''

我能够获得默认值(number == 555)的唯一方法是像这样使用or

@app.route('/test/', methods=['POST'])
def test():
    number = request.form.get('number') or 555 # number == 555
    return str(number)

知道发生了什么事吗?

python flask
1个回答
1
投票

问题是,对于您的输入,request.form.get('number')始终在检索空字符串。因为有要检索的内容,所以即使您将默认值作为第二个参数传递,它也不会使用默认值。

or,但是,将''视为假,因此将选择555。 (请参阅“使用或与公共对象一起使用” https://realpython.com/python-or-operator/

这意味着,每当您访问此URL时,您发布的表单都会有一个“数字”条目。

© www.soinside.com 2019 - 2024. All rights reserved.