我正在制作一个烧瓶网页,用户可以在其中选择多个选项。根据这些选项,我想在下一页中向他们展示他们选择的选项。 我的HTML代码:
<input type="checkbox" name="name1">name1<br>
<input type="checkbox" name="name2">name2<br>
<input type="checkbox" name="name3">name3<br>
我的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
我找不到如何形成这些if语句。我找到了一些东西:
.getvalue
但后来我收到了一个错误。使用单选按钮,我可以使用它。当我将它们命名为all,并给它们赋予不同的值:
option = request.form['name']
然而,这也不适用于复选框,因为它只会记住最后一个复选框,但我想要它们全部。
答案 0 :(得分:5)
每个复选框都是唯一的,因此在表单中唯一命名。
可以使用表单中的名称作为键,通过request.form
字典访问值本身。对于您的表单,复选框的名称为name1
,name2
和name3
。但请注意,只有在表单上检查它们时它们才可用,否则它们的值不会发布到服务器上。
因此,在您的视图功能中,您可以像这样访问它们:
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)
这使用get()
在表单字典中执行查找。如果密钥存在于字典中,则将返回该值。如果密钥不在字典中,则返回值None
。
根据@Kevin Guan的建议,这可以在for循环中处理:
for checkbox in 'name1', 'name2', 'name3':
value = request.form.get(checkbox):
if value:
do_something(value)