我很难理解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