Колб догадаться игра не отвечает правильно - PullRequest
0 голосов
/ 11 декабря 2018

Я борюсь с ниже.Не уверен, что происходит, но я не вижу никакой реакции на сайте при отправке.Я попытался переместить максимальные и минимальные переменные из функции в функцию 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 голосов
/ 07 января 2019

Это заняло у меня некоторое время, но я заметил, что return добавлено до того, как render_template при условии 'POST' устранило проблему.


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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...