【问题标题】:How to read the state of an HTML checkbox in Python / flask如何在 Python/flask 中读取 HTML 复选框的状态
【发布时间】:2015-11-13 23:43:23
【问题描述】:

我已经构建了一个工作网页和 python/flask 程序,但无法弄清楚如何在 python 代码中读取网页复选框的状态。我已经想出了如何从 python 中设置一个复选框,而不是如何阅读它。这是其中一个复选框的 html:

<div class="slideThree">    
    <input type="checkbox" value="None" id="chk_01" name="chk_01" {{chk_01_checked}}/>
    <label for="chk_01"></label>
</div>

html 代码位于与 python 程序不同的文件中。看起来我需要使用“请求”或“获取”指令的某种组合,但找不到有关如何执行此操作的明确示例。我是python和html的新手,所以任何帮助表示赞赏。

【问题讨论】:

  • 请检查,link可能重复

标签: python html checkbox flask


【解决方案1】:

复选框存在于浏览器中,python代码运行在服务器上。基本上,服务器将不知道复选框状态。如果你想改变它,你需要将两者联系起来。

有两个选项:

(1):复选框包含在表单中,当用户点击提交时,状态包含在表单数据中。

(2):您将事件处理程序分配给复选框的状态。在事件处理程序上,您将新状态发布到某个 AJAX 资源。在 Flask 中,您为 AJAX URL 添加路由并接收状态更改。

【讨论】:

  • 感谢您的回复。 (1) 不想使用提交表单按钮。 (2) 什么是“将新状态发布到某个 AJAX 资源。在 Flask 中,您为 AJAX URL 添加路由并接收状态更改”。再说一次,我是一个新手,试图找到解决方法,所以很多术语对我来说是不熟悉的。
  • HTML 代码需要一些 javascript,以检测检查/取消检查事件并调用 HTTP 发布以更新服务器上的状态。这称为 AJAX。接收站点是 Flask 应用程序上的路由。也许这个链接会有所帮助:flask.pocoo.org/docs/0.10/patterns/jquery
  • 再次感谢您的回复,但该链接并没有真正帮助我。我不明白或不知道如何: 编写 java 代码来“检测检查/取消检查事件”;知道如何“调用 HTTP 帖子来更新服务器上的状态”——这段代码是 html 还是 java?我想我了解如何根据我看到的示例在烧瓶中编程路线。但我找不到任何关于 html 部分的明确说明或示例。没想到这会那么晦涩难懂,我想这样做并不像我想象的那么普遍。
  • 您使用的是 javascript 框架(jquery、react、angular,...)还是 vanilla javascript?框架具有内置的带有简单符号的 AJAX 函数。这只是(1)将点击事件连接到html中的函数和(2)在javascript中实现函数的问题。
  • 我不认为我正在使用任何一个。我正在使用基本的 html 和 python 编辑器来编写代码。我在另一个答案中添加了代码,希望能弄清楚我想要做什么。
【解决方案2】:

这就是我想要做的。我在 html 中添加了一个动作(表单动作)行,然后在 python 中添加了一个函数来处理它。但是python函数永远不会执行,所以我显然没有正确的东西。

这里是html:

<td style="width:auto">
<form action="ManToggle">
<div class="slideThree">
    <input type="checkbox" value="None" id="chk_01_Man" name="chk_01_Man" />
    <label for="chk_01_Man"></label>
</div>
</form>
</td> 

这里是蟒蛇:

@app.route('/ManToggle', methods=['GET'])
def ManToggleUpdate():
    print ("function executes")
    test = request.form['chk_01_Man']
    if test == True :
        # do something
    else :
        # do something else

【讨论】:

    猜你喜欢
    • 2020-06-11
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 2015-07-15
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多