我在下面苦苦挣扎。不知道发生了什么,但是提交时我在网站上看不到任何反应。我尝试将最大和最小变量从函数内部移动到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>
答案 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)