如何更新我的 Python 应用程序,以便我的 Flask 函数在不中断循环的情况下将信息发送到 JavaScript?

问题描述 投票:0回答:1

我是 Flask 和 JavaScript 的新手,所以我们将不胜感激。我正在制作一个模拟选秀模拟器,我有一个包含 for 循环的函数,该函数模拟每个团队的选择,将选择添加到字典中,循环中断后,字典将发送到 JavaScript。

@app.route('/simulate-draft' , methods=['POST'])
def simulate_draft():
        # Get info from user and send to JavaScript
   for pick,info in draft_results.items():
        if team == user_team:
            #get pick from user
            #append to draft_results
        else:
            #simulate pick
            #append to draft_results
    return jsonify(draft_results)

但是,我希望将选择一项一项发送到 JavaScript,这样用户选择的团队就可以做出选择,而不是在函数末尾发送整个字典,我读过,yield 可能是这是一个潜在的解决方案,但我在实现此方法时不断遇到错误。

javascript flask
1个回答
0
投票

您无法为一个 HTTP 请求发送多个响应。但是,您可以通过使用 Web 套接字或发送数据流来实现此目的。在前端,您需要处理这个流。

 def simulate_draft():
    def generate_picks():
        for pick, info in draft_results.items():
            if team == user_team:
                yield f"data: {jsonify({pick: info})}\n\n"
            else:
                yield f"data: {jsonify({pick: info})}\n\n"

    return Response(generate_picks(), content_type='text/event-stream')
© www.soinside.com 2019 - 2024. All rights reserved.