【问题标题】:How do I run a flask app in gunicorn if I used the application factory pattern?如果我使用应用程序工厂模式,如何在 gunicorn 中运行烧瓶应用程序?
【发布时间】:2014-08-15 00:40:44
【问题描述】:

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

【问题讨论】:

    标签: flask gunicorn


    【解决方案1】:

    在你的项目下创建一个文件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 中,引号是必需的。

    【讨论】:

      【解决方案2】:

      您需要在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') 来运行应用程序。

      【讨论】:

        猜你喜欢
        • 2020-05-23
        • 2012-11-19
        • 2015-07-05
        • 2019-04-10
        • 2021-01-18
        • 2020-10-20
        • 2019-11-13
        • 1970-01-01
        • 2018-07-06
        相关资源
        最近更新 更多