相当于 Flask 中的 'While True' 循环:怎么做?

Equivalent of a 'While True' loop in Flask: how to do it?

我晚上的爱好是为我女儿编写地形测验。利用网络和 Stack Overflow 资源,我在 https://ac1976.pythonanywhere.com/api/wereld 上得到了一个 API 运行 点击它,服务器将响应一个由随机国家/资本组合组成的 JSON 对象,以及首都的 'wrong' 个答案列表。错误的答案是基于到(正确的)首都的距离,并且也是随机的。所以东京不会作为比利时首都的答案出现,但巴黎和伦敦可能。

主题:现在构建一个 flask 应用程序,它从上述 API 中获取响应,并创建一个多项选择问答游戏,询问随机国家的首都,并为用户提供 4 个多项选择选项.

我完成所有这些工作的主要途径,看起来像这样:

@app.route('/api/continent/', methods=['GET', 'POST'])

def quiz():

if request.method == "GET":

    quiz = Game('wereld')
    country = quiz.country
    answers = quiz.answers
    session['capital'] = quiz.capital

    return render_template('quiz.html', a1=answers[0], a2=answers[1], a3=answers[2], a4=answers[3], country=country)
    
else:
    
    answer = request.form['subject']

    if answer == session.get('capital'):
    
        return render_template('antwoord.html', answer="Jaaaaa...")

    else:

        return render_template('antwoord.html', answer="Neee..")

因此,在最初到达路线时,服务器会初始化 class 游戏,它本质上是一个包装器,用于捕获来自 API 的响应并将响应与每个数据的方法打包我们需要的要点:国家、答案和资本。这些测验项目存储在名称相似的变量 country、answers 和 capital 中。 HTML 模板文件中使用国家(以问题的形式)和答案(作为 4 个单独的按钮),在到达路线时显示。

如果用户按下四个按钮之一,路由逻辑的第二部分会判断答案是对还是错,然后发回一个新的 html 视图告诉用户答案是对....或错。

好的。都说得通了吧?

这是我的问题。我如何在 1 秒后自动返回到 'top of the if loop',以便代码自动重新获取来自 API 的新响应以播放另一轮?我试图在 if / else 循环之上放置一个简单的“While True:”,这适用于我这个测验的原始终端版本……但 Flask 没有。我明白为什么(它需要一个 'GET')但是....如何创建一个新的?

感谢您的想法/指导/为我指明正确的方向

阿里

HTML 页面的 header 中的元刷新标记怎么样。
在定义的时间到期后,您将被重定向到指定的 URL.

它看起来像这样。

<meta http-equiv="refresh" content="1; url={{url_for('quiz', _external=True)}}" />

如果您想使用 JavaScript,也可以使用带有超时的变体。

const uri = {{url_for('quiz') | tojson}}; 
setTimeout(() => window.location.replace(uri), 1000);