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 : Guide étape par étape pour bâtir une API REST avec Flask en Python.

👋 Bienvenue dans la documentation Stackhero !

Stackhero offre une solution Python cloud clé en main conçue pour simplifier vos déploiements :

  • Déployez votre application en production en quelques secondes grâce à un simple git push.
  • Utilisez votre propre nom de domaine, avec une configuration automatique du certificat HTTPS pour des connexions sécurisées gérées pour vous.
  • Profitez de sauvegardes automatiques, de mises à jour en un clic et d'une tarification prévisible, afin que vous puissiez vous concentrer sur votre code plutôt que sur la gestion de l'infrastructure.
  • Bénéficiez d'une performance et d'une sécurité accrues sur une infrastructure privée et dédiée. Votre environnement est isolé et protégé.

Gagnez du temps et simplifiez votre workflow : votre code peut être en ligne avec l'hébergement Python cloud de Stackhero en seulement 5 minutes.

Le serveur intégré de Flask est idéal pour le développement. En production, il est recommandé d'utiliser un serveur WSGI robuste comme Gunicorn. Voici comment vous préparer :

  1. Installez Gunicorn :

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Lancez votre application avec Gunicorn :

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    

    Ici, app:app fait référence à votre fichier (app.py) et à l'instance de l'application Flask (app).

  3. Vous pouvez ajouter un Makefile pour basculer facilement entre les modes développement et production :

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

Vous pouvez démarrer le serveur en mode développement avec make dev (ou simplement make), ou en mode production avec make prod.