Почему моя страница не обновляется после нажатия кнопки? колба - PullRequest
0 голосов
/ 14 марта 2019

Когда я нажимаю любой из этих <input>, Led не обновляется на странице.

.py:

from flask import Flask, request, render_template

app = Flask(__name__)
default_val = True


@app.route('/switch_led', methods=['GET', 'POST'])
def led_handler():
    on = request.form.get('ON', default_val)
    off = request.form.get('OFF', default_val)
    if on:
        Led = 'ON'
    elif off:
        Led = 'Not ON'
    return render_template('index.html', Led=Led)

index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
    <h1>{{ Led }}</h1>
    <form action="/switch_led" method="POST">
        <p><input type="submit" name="btnled" value="ON"></p>
        <p><input type="submit" name="btnled" value="OFF"></p>
    </form>
</body>
</html>

Любая помощь приветствуется, спасибо !!

1 Ответ

0 голосов
/ 14 марта 2019

Присмотритесь:

default_val = True # this is important!
...

on = request.form.get('ON', default_val)
off = request.form.get('OFF', default_val)
if on:
    Led = 'ON'

Таким образом, когда вы нажимаете кнопку OFF, form.get('ON', default_val) не сможет найти переключатель ON и вернет вместо него значение по умолчанию ... что равно True!

Первое условие, которое вы проверяете, - if on:, но, согласно приведенной выше логике, on - это всегда True, поэтому ваш светодиод всегда будет гореть. Условие elif не имеет значения, потому что первое всегда выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...