Skip to main content
 首页 » 编程设计

python之运行与主应用程序并行的 Flask 服务器

2025年05月04日28zhenyulu

我有一个关于汉诺塔的简单游戏,目前可以在终端运行。它允许玩家在终端输入他的回合并向终端输出可视化。

我的任务是制作一个 flask 应用程序,它将打开一个 html 页面,其中 JS 脚本将轮询服务器以获取有关游戏的信息,并将从终端到网页的可视化加倍。

我的问题是游戏和 flask 都有一个主循环,如果我依次运行它们,它们将无法并行运行。

所以我需要游戏在终端中运行,玩家在终端中轮流,但我需要网络服务器获取游戏状态并显示它。

我的问题:我应该为此使用什么?多处理线程?

假设我有一个 flask View

from game import game 
 
@app.route('/get_updates') 
def get_updates(): 
   return flask.jsonify(game.instance().board) 

如果 flask 和游戏在不同的线程中运行,它会如何工作?如何从另一个线程获取游戏对象?

请您参考如下方法:

在不同的线程中运行您的游戏可能更好?

import threading 
import time 
from flask import Flask, render_template 
 
class myGame(threading.Thread): 
    def __init__(self, threadID, name, counter): 
        threading.Thread.__init__(self) 
        self.board = 1 
 
    def run(self): 
        pass 
 
 
app = Flask(__name__) 
game = myGame() 
 
@app.route('/get_updates')  
def get_updates():  
    return flask.jsonify(game.board) 
 
if __name__ == "__main__": 
    game.start() 
    app.run(port=81, host='0.0.0.0', debug=False, use_reloader=False)