J'ai écrit une application flask en utilisant le modèle de fabrique d'application. Cela signifie qu'il ne crée pas automatiquement une instance d'application lorsque vous l'importez. Vous devez appeler create_app pour cela. Maintenant, comment puis-je l'exécuter en gunicorn?
Créez un fichier wsgi.py
Sous votre projet avec le contenu suivant, puis pointez Gunicorn dessus.
from my_project import create_app
app = create_app()
gunicorn -w 4 my_project.wsgi:app
# -w 4 specifies four worker processes
Gunicorn permet de spécifier un appel de fonction comme my_project:create_app()
. Dans la plupart des cas, vous pouvez ignorer la création d'un fichier wsgi.py
Et indiquer à Gunicorn comment créer votre application directement.
gunicorn -w 4 my_project:create_app()
Notez que vous devrez peut-être mettre le nom entre guillemets pour certains shells.
gunicorn -w 4 "my_project:create_app()"
Vous devez créer create_app () avec une configuration d'usine spécifique dans wsgi.py, tout comme manage.py ou runserver.py. Voir le code ci-dessous:
from your_app import create_app
app = create_app(os.getenv('FLASK_CONFIG') or 'dev')
if __== "__main__":
app.run()
Et puis, vous pouvez exécuter la commande gunicorn -w 4 -b 0.0.0.0:5000 wsgi:app
pour exécuter votre application.