Итак, я использую Flask для создания базовой панели управления для ИК-автоматизации в моем доме. Однако я не понимаю, как принять ответ из формы в моем HTML. Поэтому у меня в основном есть кнопка, которая изменяет состояние устройства при нажатии. Проблема, с которой я столкнулась, - принять этот ответ и обновить его на странице HTML, чтобы сказать, что он включен или выключен.Ввод формы ввода кнопки
Мой питон код Колба:
if request.method == 'POST':
if request.form['lamp'] == 'on':
btn1 = True
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((IP, PORT))
s.send(MSG.encode())
data = str(s.recv(BUFFER).decode())
print(data)
s.close()
elif request.form['lamp'] == 'off':
btn1 = False
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((IP, PORT))
s.send(MSG.encode())
data = str(s.recv(BUFFER).decode())
print(data)
s.close()
И HTML часть работает с:
<form method=post>
{% if btn1 == True %}
<button type=submit class="btn btn-default" name="lamp" value="on"><i class="fa fa-lightbulb-o fa-5x" style="color:yellow;"></i><br>Lamp</button>
{{ btn1 }}
{% else %}
<button type=submit class="btn btn-default" name="lamp" value="off"><i class="fa fa-lightbulb-o fa-5x"></i><br>Lamp</button>
{{ btn1 }}
{% endif %}
</form>
Почему не btn1 государственная меняется, когда я нажимаю его?
Спасибо, Джеймс
потому что в обоих случаях вы отправляете тот же MSG ... вам также нужно будет передать btn1 в средство визуализации шаблона –
@JoranBeasley Не хотите ли вы разработать? – Jam3sn
вам нужно вызвать 'render_template (« my.html », btn1 = True)', когда вы создаете свой шаблон, вам также нужно будет сохранить текущее состояние кнопки в каком-то постоянном кеше, поскольку он, вероятно, не будет сохраняться между соединениями –