#python #html #flask
#python #HTML #flask
Вопрос:
Я следую руководству о том, как использовать Flask и render_template
отображать значение из моего словаря pinDict в HTML-файле. Когда я перехожу к http://127.0.0.1:5000/21/on , появляется только «Привет». Почему это так?
#app.py
from flask import Flask, render_template
app = Flask(__name__)
pinDict = {"21": {"name": "GPIO 21", "state": "off"}}
@app.route('/')
def index():
return "hey"
@app.route("/<changePin>/<action>")
def turnOn(changePin, action):
return render_template("home.html", **pinDict)
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0")
Мой home.html файл — это:
<!DOCTYPE html>
<html>
<body id = "myButton">
<h1>RPi Web Server</h1>
{% for pin in pinDict %}
<h2> {{pinDict[pin]["name"]}} </h2>
{% endfor %}
<script>
function printLog() {
var myHTML = "<h1> Hi </h1>"
document.getElementById("myButton").innerHTML = myHTML;
}
</script>
<script>printLog()</script>
</body>
</html>
Довольно просто. Немного смущает, почему он не отображается, поскольку это в значительной степени тот же код из руководства, которому я следовал. Был бы признателен за помощь, спасибо за ваше время.
Комментарии:
1. Попробуйте
return render_template("home.html", pinDict=pinDict)
2. Отлично, я добавлю его в качестве ответа
Ответ №1:
Вам лучше использовать
return render_template("home.html", pinDict=pinDict)
вместо
return render_template("home.html", **pinDict)