Déployer une application Flask

2 min de lecture07 novembre 2026

Flask convient aux APIs et aux petites applications web qui doivent rester simples. Sur l'hébergement d'applications, l'essentiel est de lancer Flask sur le port fourni, sur 0.0.0.0, avec le mode debug désactivé. Le reste tient à la structure des routes et à la vérification après déploiement.

Application minimale

Python
import os
from flask import Flask, jsonify

app = Flask(__name__)

@app.get("/")
def index():
    return jsonify(service="exemple", status="ok")

@app.get("/health")
def health():
    return jsonify(status="ok"), 200

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int(os.environ.get("PORT", "8000")))

requirements.txt :

Texte
Flask==3.0.3
gunicorn==22.0.0

app.run() bloque et sert les requêtes. Sur la plateforme, le fichier principal est exécuté directement, donc le bloc __main__ est bien appelé.

Mode production

Ne laissez jamais debug=True sur un service accessible : le débogueur interactif permet l'exécution de code si l'accès n'est pas filtré. Flask affiche aussi un avertissement explicite lorsque le serveur de développement est utilisé en production.

Le serveur intégré convient à un faible trafic et au diagnostic : il reste utile pour valider une route, mais il ne doit pas devenir la cible d'un trafic soutenu. Pour une charge réelle, utilisez un serveur WSGI comme Gunicorn ou Waitress, si votre offre permet de modifier la commande de démarrage :

Bash
gunicorn --bind 0.0.0.0:$PORT --workers 2 main:app

Deux workers suffisent souvent sur une offre à un vCPU ; chaque worker a sa propre mémoire. Ne multipliez pas les workers sans surveiller la RAM.

Routes et erreurs

  • Une route /health rapide, sans dépendance lourde.
  • Des réponses JSON cohérentes, y compris pour les erreurs.
  • Une validation des entrées avant la base.
  • Une limite de taille (MAX_CONTENT_LENGTH) si vous acceptez des fichiers.
  • Un gestionnaire d'erreurs qui journalise la pile côté serveur sans la renvoyer au client.

Les fichiers statiques volumineux et les téléversements doivent être limités ou délégués à un stockage adapté ; le conteneur n'est pas un CDN.

Vérifier

Bash
curl -i http://ADRESSE_FOURNIE:PORT/
curl -i http://ADRESSE_FOURNIE:PORT/health

Attendez 200 et un corps JSON. Provoquez une route inconnue : 404, pas une trace Flask. Si le service est « en ligne » mais renvoie une erreur de connexion, vérifiez l'hôte (0.0.0.0) et le port avant de suspecter le code.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi