提问人:Ter 提问时间:10/28/2023 最后编辑:Ter 更新时间:10/30/2023 访问量:32
如何保存随机变量,以便我可以将其用于 POST 和 GET
How to save the random variable so that I can use it for POST and GET
问:
我目前正在参加 cs50 课程,对于我的最终项目,我想创建一个简单的应用程序,其中从 sqlite 数据库中随机选择一个单词,然后用户应该输入与显示相同的单词。
现在我有一个我无法解决的问题。当用户访问网站时,我想显示随机单词,当用户想要更正输入的单词时,它应该将他定向到一个新的 html 文件以“更正”该单词,然后将他重定向到主页。
现在我无法做到这一点,因为当用户通过 POST “提交”单词时,会生成一个新的随机数,并且显示的单词是不同的,永远不会相同。我不知道如何解决它。
请帮忙谢谢。
我目前的代码:
@app.route("/", methods=["GET", "POST"])
def mainpage():
for i in range(1):
randoms = random.randrange(1,10)
words = db.execute("SELECT WORD FROM words WHERE ID = ?", randoms)
word = str(words)
if request.method == "POST":
return render_template("check.html", counter=counter, input=input, word=word, random=randoms)
return render_template("mainpage.html", word=word, random=randoms)
我尝试将单词读入 txt 文件,然后将文件中的单词读入程序,但显示的单词仍然不同,因为当我沿着 POST 路由前进时会生成一个新的随机数。
编辑:
我找到了一种方法,可以在 chatgpt(笑)的帮助下做到这一点,如果计数器达到 10,则重置为 10:
@app.route(“/”, methods=[“GET”, “POST”]) def mainpage(): 如果“计数器”不在会话中: session['counter'] = 1 # 如果会话中不存在计数器,则初始化计数器
return render_template("mainpage.html")
@app.route(“/start”, methods=[“POST”, “GET”]) def start(): 如果“计数器”不在会话中: session['counter'] = 1 # 如果会话中不存在计数器,则初始化计数器
result = db.execute("SELECT WORD FROM words WHERE ID = ?", session['counter'])
words = result[0]['WORD']
word = str(words)
if request.method == "POST":
input = request.form.get("input")
if word == input:
session['counter'] += 1
if session['counter'] > 10:
session['counter'] = 1 # Reset the counter when it reaches 10
return render_template("check.html")
else:
return render_template("wrong.html")
return render_template("start.html", word=word)
答: 暂无答案
评论