web-dev-qa-db-ja.com

アプリケーションファクトリパターンを使用した場合、gunicornでflaskアプリを実行するにはどうすればよいですか?

アプリケーションファクトリパターンを使用してflaskアプリを作成しました。つまり、インポート時にアプリインスタンスが自動的に作成されないことを意味します。そのためにcreate_appを呼び出す必要があります。 gunicornで?

43
Nick Retallack

プロジェクトの下に次の内容のファイル_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()
_

一部のシェルでは、名前を引用符で囲む必要がある場合があることに注意してください。

_gunicorn -w 4 "my_project:create_app()"
_
66
davidism

Manage.pyやrunserver.pyと同じように、wsgi.pyの特定のファクトリー構成でcreate_app()を実行する必要があります。以下のコードを参照してください。

from your_app import create_app

app = create_app(os.getenv('FLASK_CONFIG') or 'dev')

if __== "__main__":
    app.run()

そして、コマンドgunicorn -w 4 -b 0.0.0.0:5000 wsgi:appを実行してアプリケーションを実行できます。

4
sudoz