Flask没有获得复选框值

时间:2015-08-24 18:56:20

标签: python checkbox flask request

当我点击提交按钮时,我正在尝试打印Flask中的复选框值。

app.py代码段

@app.route('/test2', methods=['GET', 'POST'])
def test2():

    if request.method == "POST":
        if request.form['submit'] == 'submit':
            print(request.args.get('check'))

    return render_template('test.html')

HTML:

<div class="container"><br>
  <form role="form" method="post">
    <input type="checkbox" name="check" value="test">
    <button type="submit" name="submit" value="submit">Submit</button>
  </form>
</div>

点击提交按钮时返回“无”。

我也尝试过request.form.get()

@app.route('/test2', methods=['GET', 'POST'])
def test2():

    if request.method == "POST":
        if request.form['submit'] == 'submit':
            print(request.form.get('check'))

    return render_template('test.html')

这也会返回'无'。

1 个答案:

答案 0 :(得分:11)

提交HTML表单时,未选中的复选框不会发送任何数据。在Flask方面,form中没有密钥,因为没有收到任何值。如果要检查是否选中了一个复选框(具有唯一名称),只需测试它的名称是否在form中。如果要检查选中了多个复选框(具有相同名称)中的哪一个,请改用getlist

一个布尔值:

<input type="checkbox" name="check">
checked = 'check' in request.form

多个选项:

<input type="checkbox" name="check" value="1">
<input type="checkbox" name="check" value="2">
<input type="checkbox" name="check" value="3">
selected = request.form.getlist('check')
any_selected = bool(selected)