为什么按下按钮后页面没有更新?烧瓶

时间:2019-03-14 20:39:14

标签: python forms flask

当我按下这两个<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 :(得分:0)

仔细观察:

default_val = True # this is important!
...

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

因此,当您单击“关闭”按钮时,form.get('ON', default_val)将无法找到“打开”切换,而是返回默认值...等于True

您检查的第一个条件是if on:,但是根据上面的逻辑on总是 True,因此您的LED将始终保持点亮状态。 elif条件并不重要,因为第一个条件始终满足。