Python 将复选框值发送到烧瓶
我有一个表单如下所示:Python 将复选框值发送到烧瓶,python,html,flask,Python,Html,Flask,我有一个表单如下所示: <form id="settings" action="{{ url_for("load_settings") }}" method="post"> ... <label for="m_r">Interval 1</label> <input type="text" name="morn_r" id="m_r"> <label for="d1_e">Enabled</label
<form id="settings" action="{{ url_for("load_settings") }}" method="post">
...
<label for="m_r">Interval 1</label>
<input type="text" name="morn_r" id="m_r">
<label for="d1_e">Enabled</label>
<input type="checkbox" name="d_enabled" id="d1_e" value="off" onclick="toggle_check(this)">
</form>
下面是我的Python:
@app.route("/settings", methods=["POST", "GET"])
def load_settings():
if request.method == "POST":
settings = list(request.form.values())
print(settings)
return render_template("settings.html")
如果我将文本输入保留为空,但单击复选框,则会打印以下内容:[…,''on']
现在,如果我也将复选框保留为空,那么将打印以下内容:[…,'']
。由于某些原因,它不会添加复选框的值
我不知道怎么解决这个问题。有人能帮忙吗
谢谢。从以下州偷窃:
复选框(和单选按钮)是可由用户切换的开/关开关。当控制元素的checked属性被设置时,开关处于“开启”状态。提交表单时,只有“打开”复选框控件才能成功
因此,当取消选中复选框时,复选框值不存在的原因与Flask无关。当复选框未选中时,浏览器不会将表单输入序列化到请求中
不过,您可以做的是在模板中为输入提供一些合理的值:
<input type="checkbox" name="d_enabled" value="on">
从美国偷窃:
复选框(和单选按钮)是可由用户切换的开/关开关。当控制元素的checked属性被设置时,开关处于“开启”状态。提交表单时,只有“打开”复选框控件才能成功
因此,当取消选中复选框时,复选框值不存在的原因与Flask无关。当复选框未选中时,浏览器不会将表单输入序列化到请求中
不过,您可以做的是在模板中为输入提供一些合理的值:
<input type="checkbox" name="d_enabled" value="on">
if request.form.get('d_enabled') == 'on':
# checkbox is checked
else:
# checkbox is not checked