【发布时间】:2014-08-15 00:40:44
【问题描述】:
我使用应用程序工厂模式编写了一个烧瓶应用程序。这意味着当您导入它时它不会自动创建应用程序实例。您必须为此调用 create_app。现在如何在 gunicorn 中运行它?
【问题讨论】:
我使用应用程序工厂模式编写了一个烧瓶应用程序。这意味着当您导入它时它不会自动创建应用程序实例。您必须为此调用 create_app。现在如何在 gunicorn 中运行它?
【问题讨论】:
在你的项目下创建一个文件wsgi.py,内容如下,然后将Gunicorn指向它。
from my_project import create_app
app = create_app()
gunicorn -w 4 my_project.wsgi:app
# -w 4 specifies four worker processes
如果您使用应用程序工厂模式,Gunicorn 允许指定函数调用,例如 my_project:create_app()。在大多数情况下,您可以跳过创建wsgi.py 文件并直接告诉 Gunicorn 如何创建您的应用程序。
gunicorn -w 4 "my_project:create_app()"
请注意,在括号具有特殊含义的某些 shell 中,引号是必需的。
【讨论】:
您需要在run.py 中使用特定的出厂配置create_app()。请看下面的代码:
from your_app import create_app
if __name__ == "__main__":
app = create_app(os.getenv('FLASK_CONFIG') or 'dev')
app.run()
然后,您可以运行命令gunicorn -w 4 -b 0.0.0.0:5000 run:create_app('dev') 来运行应用程序。
【讨论】: