【问题标题】:Passing a different callable to uWSGI instead of flask app object将不同的可调用对象传递给 uWSGI 而不是烧瓶应用程序对象
【发布时间】:2019-09-04 16:08:31
【问题描述】:

我是第一次为我的烧瓶应用实现 uWSGI。

在启动烧瓶应用程序之前需要进行大量配置。除了将 uWSGI 传递给 app 对象(我相信它调用 app.run)之外,是否可以传递一个单独的可调用对象,一个设置配置然后调用 app.run() 本身的方法?

例如。我看到的每一件事都设置了入口点,例如:

from ... import app

if __name__ == "__main__":
   ...

我想知道我是否可以做类似的事情

from ... import app

def setup():
   app.run(...)


if __name__ == "__main__":
   ...

并告诉 uWSGI 运行 setup 而不是 app。

谢谢!

【问题讨论】:

  • 出于好奇,当你测量进行配置所需的时间时,它是多长时间?
  • 好吧,并不是说配置需要很长时间。但是我继承了这段代码,之前的开发人员导入了应用程序,在类中手动设置对象的一些配置,然后调用 app.run。所以我不确定如何更改代码,以便 uWSGI 可以实例化类本身,然后对其调用 run。因此,如果我可以代理可调用对象,那么当它被调用时,我可以实例化该类而无需触及其他代码。

标签: python flask uwsgi


【解决方案1】:

如果我没记错的话,uwsgi 会调用 something.run()。您可以通过设置配置module 值来更改什么。例如

--module myapp:foobar

所以 uwsgi 调用foobar.run()。不过,不确定这是一个巨大的胜利。一种常见的方法是使用您喜欢的任何子类,然后在最后进行分配:

app = foobar

于是 uwsgi 愉快地打电话给app.run()

【讨论】:

  • 那是我不确定的另一件事。我无法在文档中找到 uWSGI 正在寻找可调用运行的方法的任何地方。我只是看到我们必须告诉 wsgi 一个可调用对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2020-11-02
  • 2022-12-01
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多