Python: Préparer Python et Flask pour la mise en production

Cette documentation fait partie du guide Création d'une API REST. Consultez le guide complet ici : Comment créer une API REST avec Flask.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Python cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Déployez votre application en quelques secondes avec un simple git push.
  • Utilisez votre propre nom de domaine et profitez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
  • Bénéficiez de sauvegardes automatiques, de mises à jour en un clic, ainsi que d'une tarification simple, transparente et prévisible.
  • Profitez d'une performance optimale et d'une sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution d'hébergement Python cloud de Stackhero !

Ce guide utilise le serveur de développement intégré de Flask, mais pour la production il est indispensable d'utiliser un serveur WSGI adapté comme Gunicorn. Voici les étapes à suivre :

  1. Installez Gunicorn :

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Lancez votre application avec Gunicorn en utilisant l'argument app:app (le premier app est le nom du fichier, le second est l'instance Flask) :

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Créez un Makefile pour faciliter le passage entre les modes développement et production :

    .DEFAULT_GOAL := dev
    
    # Par défaut, Stackhero for Python exécute la règle "run". Nous la redéfinissons pour lancer la règle 'prod'.
    run: prod
    
    prod:
    	ENV=production gunicorn app:app \
    	  --error-logfile - \
    	  -b 0.0.0.0:8080
    
    dev:
    	python app.py
    

Vous pouvez lancer votre serveur en mode développement avec make dev (ou simplement make), et en mode production avec make prod.