我可以单独使用Flask app.run()服务多个客户端吗?

我知道我可以将Flask与Apache或其他Web服务器链接。但是,我当时正在考虑将Flask作为独立的服务器运行,同时为多个客户端提供服务。

这可能吗?我是否需要处理产生多个线程并进行管理?

回答:

flask.Flask.run接受**options转发给它的其他关键字参数()werkzeug.serving.run_simple-其中两个参数是threaded(布尔值)和processes(您可以将其设置为大于1的数字以使werkzeug产生多个进程来处理请求)。

threaded默认True版本自Flask

1.0起,因此对于最新版本的Flask,默认情况下默认开发服务器将能够同时为多个客户端提供服务。对于旧版本的Flask,您可以显式传递threaded=True以启用此行为。

例如,您可以

if __name__ == '__main__':

app.run(threaded=True)

以与旧Flask版本兼容的方式使用线程处理多个客户端,或者

if __name__ == '__main__':

app.run(threaded=False, processes=3)

告诉Werkzeug生成三个进程来处理传入的请求,或者只是

if __name__ == '__main__':

app.run()

如果您知道将使用Flask 1.0或更高版本,则可以使用线程来处理多个客户端。

话虽如此,Werkzeug的serving.run_simple包装了标准库的wsgiref程序包-

该程序包包含WSGI的参考实现,而不是可用于生产的Web服务器。如果您要在生产环境中使用Flask(假设“生产环境”不是低流量的内部应用程序,并发用户不超过10个),请确保将其置于真实的Web服务器后面(请参阅Flask文档标题为“一些建议方法的部署选项)。

以上是 我可以单独使用Flask app.run()服务多个客户端吗? 的全部内容, 来源链接: utcz.com/qa/405376.html

回到顶部