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)
但是,这也不适用于复选框,因为它只记住最后一个复选框,但我要全部使用。
每个复选框都是唯一的,因此在表单中具有唯一的名称。
值本身可以通过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)
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)