python - 有没有办法验证在 Flask 中选中了一个复选框?
问题描述
我正在尝试创建一个包含多个复选框的 Flask 表单。但是,我想确保用户在一组大约 30 个复选框中至少选中了一个复选框。可以在烧瓶中做吗?
这是 3 个按钮的 Python 代码
button1 = BooleanField('button1')
button2 = BooleanField('button2')
button3 = BooleanField('button3')
这是 3 个按钮的 Jinja2 代码
{{ form.button1(class="form-checkbox-input") }}
{{ form.button1.label(class="form-check-label") }}<br>
{{ form.button2(class="form-checkbox-input") }}
{{ form.button2.label(class="form-check-label") }}<br>
{{ form.button3(class="form-checkbox-input") }}
{{ form.button3.label(class="form-check-label") }}<br>
解决方案
button1 = BooleanField('button1')
button2 = BooleanField('button2')
button3 = BooleanField('button3')
这是处理数组的一种相当低效的方式(就您必须编写的内容而言,而不是代码的速度)。您可能需要考虑使用实际数组,例如(a):
buttonArray = []
for idx in range(30):
# F-strings relatively recent Python, you could go back
# to "button%d".format(idx + 1) if need be.
buttonArray.append(BooleanField(f'button{idx + 1}'))
然后你可以用它来检查一个或多个是否为真:
if any(buttonArray):
atLeastOneTrue()
和这样的东西来处理每个真正的元素:
for idx in range(len(buttonArray)):
if buttonArray[idx]:
print(f'button{idx + 1} is true')
(a)请记住,我对 Jinja2 知之甚少,但如果你能在那时将它们制作成数组以提高效率,我不会感到惊讶。
推荐阅读
- regex - 获取 URL 中斜杠之间或末尾的数字
- javascript - 将一组已解决的承诺映射到一组值
- vba - 更改复制标签的名称
- r - 在栅格中制作正方形
- sql - T-sql,Mvc,SQL,MAIL
- android - 错误“BasicNetwork.performRequest:https://poloniex.com/tradingApi 的意外响应代码 403”
- function - 如何根据 Anylogic 中的另一个参数改变一个参数?
- visual-studio-2017 - 如何在 Visual Studio 2017 的解决方案资源管理器中隐藏项目
- c# - asp.net-core / c# - 检查具有 2 个主键的表中是否存在行?
- angular - .net core 1.1 angular 5 windows 身份验证 401 未经授权