Comment faire fonctionner une application flask dans gunicorn si j'ai utilisé le modèle Application factory?

j'ai écrit une application de flasque en utilisant le modèle de l'usine d'application. Cela signifie qu'il ne crée pas une instance app automatiquement lorsque vous l'importez. Vous devez appeler create_app. Comment je fais avec gunicorn?

22
demandé sur Nick Retallack 2014-08-15 04:40:44

2 réponses

Créer un fichier wsgi.py dans le cadre de votre projet avec le contenu suivant, 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(). Pour la plupart des cas, vous pouvez sauter en faisant un wsgi.py fichier et dites Gunicorn comment créer votre application directement.

gunicorn -w 4 my_project:create_app()

Notez que vous pouvez avoir à mettre le nom entre guillemets pour certaines coquilles.

gunicorn -w 4 "my_project:create_app()"
33
répondu davidism 2018-08-04 00:18:45

vous devez créer _app () avec la configuration spécifique de l'usine wsgi.py tout comme manage.py ou runserver.py. Voir le code ci-dessous:

form your_app import create_app

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

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

Et puis, vous pouvez exécuter la commande gunicorn -w 4 -b 0.0.0.0:5000 wsgi:app pour lancer votre application.

3
répondu sudoz 2016-07-31 05:09:38