烧瓶猜测游戏无法正确响应

时间:2018-12-11 19:30:18

标签: python html flask

我在下面苦苦挣扎。不知道发生了什么,但是提交时我在网站上看不到任何反应。我尝试将最大和最小变量从函数内部移动到outisde。看起来猜测变量在这里使用不正确,但是我不知道发生了什么。

from flask import Flask, request, render_template

app = Flask(__name__)

minimum = 0
maximum = 1000
guess = int((maximum - minimum) / 2) + minimum

@app.route("/", methods=['POST', 'GET'])
def zadanie():
    global maximum
    global minimum
    global guess
    if request.method == 'POST':
        guess = int((maximum - minimum) / 2) + minimum
        odp = request.form['odp']
        if odp == 'Zgadłeś':
            render_template('Zadanie_3_1.html', g=f'WYGRAŁEM! Twoja liczba to {guess}')
        elif odp == 'Zadużo':
            maximum = guess
            render_template('Zadanie_3_1.html', g=f'Czy twoja liczba to: {guess}')
        elif odp == 'Zamało':
            minimum = guess
            render_template('Zadanie_3_1.html', g=f'Czy twoja liczba to: {guess}')
        else:
            render_template('Zadanie_3_1.html', g=f'NIE OSZUKUJ')
    return render_template('Zadanie_3_1.html', g=f'Zgaduje: {guess}')


if __name__ == "__main__":
    app.run(debug=True)

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Zadanie_3</title>
</head>
<body>
    <h1>Pomyśl liczbe od 0 do 1000</h1>
    <br>
    <h3>{{ g }}</h3>
    <form method="post" action="{{ url_for('zadanie') }}">
        <hidden></hidden>
        <p>
            <br>
            <label>
                <!--<input type="hidden" name="minimum" value="0">-->
                <!--<input type="hidden" name="maximum" value="1000">-->
                <input type="radio" name="odp" value="Zadużo">Za dużo</input> <br>
                <input type="radio" name="odp" value="Zamało">Za mało</input> <br>
                <input type="radio" name="odp" value="Zgadłeś">Zgadłeś</input> <br>
            </label>
        </p>
        <label>
            <input class="button" type="submit" value="Wyślij">
        </label>
    </form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

花了我一段时间,但我注意到在'POST'条件下render_template之前添加了 return 可以解决此问题。


from flask import Flask, request, render_template, url_for

app = Flask(__name__)

minimum = 0
maximum = 1000


@app.route("/", methods=['POST', 'GET'])
def zadanie():
    global maximum
    global minimum
    guess = int(((maximum - minimum) / 2) + minimum)
    if request.method == 'POST':
        odp = request.form['odp']
        if odp == 'Zgadłeś':
            return render_template('Zgadywanie_liczb_3.html', g=f'WYGRAŁEM! Twoja liczba to {guess}')
        elif odp == 'Zadużo':
            maximum = guess
            guess = int(((maximum - minimum) / 2) + minimum)
            return render_template('Zgadywanie_liczb_3.html', g=f'Czy twoja liczba to: {guess}')
        elif odp == 'Zamało':
            minimum = guess
            guess = int(((maximum - minimum) / 2) + minimum)
            return render_template('Zgadywanie_liczb_3.html', g=f'Czy twoja liczba to: {guess}')
        else:
            return render_template('Zgadywanie_liczb_3.html', g=f'NIE OSZUKUJ')
    else:
        return render_template('Zgadywanie_liczb_3.html', g=f'Zgaduje: {guess}')


if __name__ == "__main__":
    app.run(debug=True)