如何保存随机变量,以便我可以将其用于 POST 和 GET

How to save the random variable so that I can use it for POST and GET

提问人:Ter 提问时间:10/28/2023 最后编辑:Ter 更新时间:10/30/2023 访问量:32

问:

我目前正在参加 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)
python 烧瓶 http-post http-get

评论


答: 暂无答案