如何设置 Flask 请求以更改 HTML 按钮的颜色



我很难理解Flask请求。我用它来更改 HTML 按钮在单击后的状态,本质上是将颜色从黑色更改为黄色。但是我正在努力寻找如何链接Python和HTML。

这是我到目前为止的Python:

from flask import Flask, render_template, url_for, request
app = Flask(__name__)
@app.route('/', methods = ['GET', 'POST'])
def homePage():
    pageType = 'Controller' 
    btn1 = True
    if request.form['value'] == 'on':
        print("yes")
        btn1 = True
    elif request.form['value'] == 'off':
        print("no")
        btn1 = False
    return render_template("index.html", pageType = pageType, btn1 = btn1)
if __name__ == "__main__":
    app.debug = True
    app.run()

然后在我的HTML模板中:

<form method=post>
    {%  if btn1 == True  %}
        <button type=submit class="btn btn-default" value="on"><i class="fa fa-lightbulb-o fa-5x" style="color:yellow;"></i><br>Lamp</button>
    {% else %}
        <button type=submit class="btn btn-default" value="off"><i class="fa fa-lightbulb-o fa-5x"></i><br>Lamp</button>
    {%  endif  %}
</form>

我显然出错了,只是不确定在哪里或如何使这项工作......

所有 HTML 表单元素都需要一个 name 属性,以便在提交表单时发送其数据。您的模板应为:

{% if btn1 %}
    <button type=submit class="btn btn-default" name="lamp" value="on">...
{% else %}
    <button type=submit class="btn btn-default" name="lamp" value="off">...
{% endif %}

该名称是用于访问请求中的值的名称:

if request.method == 'POST':
    if request.form['lamp'] == 'on':
        btn1 = True
    elif request.form['value'] == 'off':
        btn1 = False

最新更新