我(可能)感到困惑.我想从app-factories安全地创建Flask/WSGI应用程序,并且仍然可以轻松地在WSGI服务器中使用它们.
TL;博士
我可以安全地避免在导入init时创建应用程序(如推荐的那样),而是稍后创建它(即使用工厂方法)
如何使该应用程序与WSGI服务器整齐地工作?特别是当我通过配置和其他设置而不是从ENV中拉出它们时
例如::
def make_app(configdict, appname):
app = Flask(appname)
app.config.update(configdict)
init_db(configdict)
set_app_in_global_namespace(app)
#importing now will allow from pkg import app
from mypackage import views
return app
Run Code Online (Sandbox Code Playgroud)
我想使用上面的"工厂",因为我想轻松控制配置进行测试等.
然后,我可能想要创建一个wsgi.py模块,该模块将应用程序提供给WSGI服务器.
所以事情看起来有点像这样
init .py ::
app = None
def make_app(configdict, appname):
flaskapp = Flask(appname)
flaskapp.config.update(configdict)
init_db(configdict)
global app
app = flaskapp
#importing now will allow from pkg import app
from mypackage import views
return flaskapp
Run Code Online (Sandbox Code Playgroud)
wsgi.py ::
from mypackage import app
app = make_app(configfromsomewhere, "myname")
Run Code Online (Sandbox Code Playgroud)
uWSGI :: …