Flask没有获得复选框值

Sco*_*tt 3 python checkbox request flask

当我点击提交按钮时,我正在尝试打印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')
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

点击提交按钮后返回"无".

我也试过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')
Run Code Online (Sandbox Code Playgroud)

这也返回'无'.

dav*_*ism 13

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

一个布尔值:

<input type="checkbox" name="check">
Run Code Online (Sandbox Code Playgroud)
checked = 'check' in request.form
Run Code Online (Sandbox Code Playgroud)

多种选择:

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