如果我使用应用程序工厂模式,如何在gunicorn中运行烧瓶应用程序?

Nic*_*ack 46 flask gunicorn

我使用应用程序工厂模式编写了一个烧瓶app.这意味着它在导入时不会自动创建应用实例.你必须为此调用create_app.现在我如何在gunicorn中运行它?

dav*_*ism 73

wsgi.py使用以下内容在项目下创建一个文件,然后指向Gunicorn.

from my_project import create_app

app = create_app()
Run Code Online (Sandbox Code Playgroud)
gunicorn -w 4 my_project.wsgi:app
# -w 4 specifies four worker processes
Run Code Online (Sandbox Code Playgroud)

Gunicorn允许指定函数调用my_project:create_app().在大多数情况下,您可以跳过制作wsgi.py文件并告诉Gunicorn如何直接创建您的应用程序.

gunicorn -w 4 my_project:create_app()
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须将名称放在引号中以用于某些shell.

gunicorn -w 4 "my_project:create_app()"
Run Code Online (Sandbox Code Playgroud)


sud*_*doz 7

您需要create_app()run.py. 请参阅下面的代码:

from your_app import create_app

if __name__ == "__main__":
    app = create_app(os.getenv('FLASK_CONFIG') or 'dev')
    app.run()
Run Code Online (Sandbox Code Playgroud)

然后,您可以运行命令gunicorn -w 4 -b 0.0.0.0:5000 run:create_app('dev')来运行应用程序。