如何检查HTML中的某些复选框是否已选中?

Pat*_*tty 3 html python checkbox flask

在烧瓶中制作一个网页,用户可以在该网页上选择多个选项。根据这些选项,我想在下一页显示它们的选择选项。我的HTML代码:

<input type="checkbox" name="name1">name1<br>
<input type="checkbox" name="name2">name2<br>
<input type="checkbox" name="name3">name3<br>
Run Code Online (Sandbox Code Playgroud)

我的Python代码:

if checkbox 1 is checked:
    do something
if checkbox 2 is checked:
    do something different
if checkbox 3 is checked:
    do another something different
Run Code Online (Sandbox Code Playgroud)

我找不到如何形成这些if语句的方法。我发现了一些东西:

.getvalue
Run Code Online (Sandbox Code Playgroud)

但是后来我得到了一个错误。使用单选按钮,我可以使其工作。当我给它们起同样的名字并给它们不同的值时:

option = request.form['name']
Run Code Online (Sandbox Code Playgroud)

但是,这也不适用于复选框,因为它只记住最后一个复选框,但我要全部使用。

mha*_*wke 6

每个复选框都是唯一的,因此在表单中具有唯一的名称。

值本身可以通过request.form字典使用表格中的名称作为键来访问。对于表单中的复选框被命名为name1name2name3。但是请注意,只有在表单上选中它们时,它们才可用,否则它们的值不会发布到服务器上。

因此,在您的视图函数中,您可以像这样访问它们:

name1 = request.form.get('name1')
if name1:
    do_something(name1)

name2 = request.form.get('name2')
if name2:
    do_something(name2)

name3 = request.form.get('name3')
if name3:
    do_something(name3)
Run Code Online (Sandbox Code Playgroud)

这用于get()在表单字典中执行查找。如果密钥存在于字典中,则将返回值。如果键不在字典中,None则返回值。

如@Kevin Guan所建议,可以在for循环中处理:

for checkbox in 'name1', 'name2', 'name3':
    value = request.form.get(checkbox):
    if value:
        do_something(value)
Run Code Online (Sandbox Code Playgroud)