У меня было много проблем при попытке передать переменную в шаблон в flask. Я прочитал документы и примеры, и я не вижу, что я делаю неправильно.
Маршрут flask poll_request ниже опрашивает словарь в другом модуле python, чтобы определить, включен ли насос. В настоящее время маршрут точно определяет, когда словарь сообщает о включении или выключении, когда он печатает «состояние» на терминал.
Я отправляю запрос ajax для опроса состояния насоса и визуализации шаблона с правильная переменная. Я отправляю запрос на получение маршрута flask, чтобы, если насос включен, он отображал шаблон с переменной «вкл» на странице, иначе маршрут будет отображаться с переменной «Выкл.». Переменная печатает и возвращает правильное значение на стороне сервера, но оно не помещается в шаблон при визуализации. Я очистил кеш и закрыл / открыл страницу, чтобы посмотреть, была ли это проблема с кешем. Ни одна из областей в шаблоне не отображает переменную. Я новичок в фляге / дзиндзя, поэтому любая помощь будет отличной.
ajax
$.ajax({
url: 'poll_status',
type: 'get',
})
flask маршрут
@app.route("/poll_status")
def poll_status():
if current_user.is_authenticated:
x = current_user.get_id()
if all(value == "off" for value in pubsub.pump_status.values()):
print('all off')
return render_template("main1.html", pump1="off")
else:
state = pubsub.pump_status['pump1']
return render_template("main1.html", pump1=state)
else:
return redirect(url_for("log_in"))
html
<span class="border rounded pump_text" id="pump1_status"> {{ pump1 }} </span>
<p> {{ pump1 }} </p>