我有一个运行Flask的Python后端,它将有一个函数(或一些链接在一起的函数),它将运行几个AJAX调用并执行一些数据库操作。
这需要一段时间,因此在前端我希望定期轮询服务器并在进行时更新UI。概要可能是这样的:
app.route('/update', methods=['GET'])
def getUpdate():
# return a response with the current status of the update
@app.route('/update', methods=['POST'])
def runUpdate():
# asynchronously call update() and return status
def update():
# perform ajax calls
# update database
# query database
# ...
我考虑过WebSockets,但我不知道这是否会让UI变得有点过于复杂而无法在UI中进行简单的更新。我知道我也可以使用模块范围的变量或将状态存储在数据库表中,但其中任何一种对我来说都是糟糕的设计。我可以使用一个简单的模式来实现这个目标吗?