Facile

Conclusion — Séance 6

Votre application Streamlit peut maintenant mémoriser les choix de l'utilisateur, s'exécuter sur une autre machine, et être accessible depuis internet.

Ce que vous savez faire

Vous êtes maintenant capable de :

  • Persister l'état avec st.session_state : initialiser les clés au démarrage, lier un widget via le paramètre key, lire et écrire des valeurs entre les re-runs
  • Créer des interactions croisées : capturer une sélection sur un graphique Plotly et filtrer d'autres composants en réponse
  • Structurer un projet Python : requirements.txt via pip freeze, environnement virtuel, .gitignore, .env/.env.example, README.md
  • Gérer les secrets : .env en local, st.secrets sur Streamlit Community Cloud, jamais de clés dans le code commité
  • Déployer sur Streamlit Community Cloud : connecter un dépôt GitHub, configurer les secrets dans l'interface web, déclencher un redéploiement par git push

Les patterns clés

Patterns à retenir

  1. Initialisation défensive — toujours if "clé" not in st.session_state: avant d'utiliser une clé
  2. Widget liékey="nom" sur un widget le synchronise automatiquement avec session_state
  3. Secrets hors du code.env et secrets.toml dans .gitignore, .env.example commité
  4. requirements.txt versionnépip freeze > requirements.txt depuis un environnement virtuel dédié au projet
  5. git push = redéploiement — sur Streamlit Community Cloud, chaque push sur main met à jour l'application

Architecture finale du projet

Chargement du diagramme…

Checklist de validation

Avant de considérer cette séance comme terminée, vérifiez ces points :

Point de contrôleTechnique
Les filtres persistent entre les pagesWidgets avec key= dans la sidebar
Les clés session_state sont initialiséesif "clé" not in st.session_state: en début de script
requirements.txt est à jourpip freeze > requirements.txt depuis le venv
Les secrets ne sont pas dans le code.env et secrets.toml dans .gitignore
.env.example est commitéClés présentes, valeurs vides
Le projet se lance depuis un clone proprepip install -r requirements.txt + copier .env.example
L'application est déployée (exercice D)URL publique *.streamlit.app accessible

Bilan du cours

Récapitulatif de ce que vous avez construit au fil des séances :

SéanceBrique
Séance 1API REST Flask — endpoints, pagination, agrégation
Séance 2Dashboard Streamlit — widgets, layout, multi-pages
Séance 3Visualisations Plotly Express — graphiques interactifs
Séance 4SQL analytique — window functions, requêtes avancées
Séance 5Communication HTTP — découplage, sécurité, client structuré
Séance 6Session state, structure de projet, déploiement

Bilan

Vous disposez d'une API REST sécurisée (Flask), d'un dashboard avec état persistant (Streamlit + Plotly), de requêtes analytiques (SQL), d'une communication HTTP avec gestion d'erreurs, et d'un déploiement sur le cloud. Ces briques couvrent l'essentiel de ce que vous utiliserez en entreprise sur ce type de projet.