如何在Flask中返回多个值?

时间:2017-07-10 09:34:07

标签: python flask server

我有一个烧瓶应用程序。对于这个问题,我使用给定的hello world示例来使其更容易。如下所示,在执行任务后,它会在"Hello World!"上显示0.0.0.0:5000

实际上我的应用程序执行了一项相当大的任务,我想在任务的每一步之后打印一条短消息,如日志。例如,在执行第1步后,我希望它打印step 1 done然后继续执行第2步。这是否可能?

我很清楚我无法刷新页面,因为这会重新启动我的任务。当出现问题时,我必须查看服务器的日志以了解发生的情况,但我希望能够公开这些信息。

from flask import Flask

app = Flask(__name__)

port = int(os.getenv("PORT"))

@app.route('/')
def hello_world():
    do some tasks
    return 'Hello, World!'

if __name__ == '__main__':
   app.run(host='0.0.0.0', port=port)

1 个答案:

答案 0 :(得分:1)

使用单独的套接字连接更新进度是最实用的方法,例如:https://flask-socketio.readthedocs.io/en/latest/ 如果您正在托管大量这些请求,我建议您设置MQTT代理并使用https://github.com/MrLeeh/Flask-MQTT

另一个选项是创建一个单独的侦听器路径,其中包含正在完成的工作的工作ID参数,并通过页面中的Ajax调用继续轮询更新

(new_string, number_of_subs_made)
相关问题