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ètrekey, 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.txtviapip freeze, environnement virtuel,.gitignore,.env/.env.example,README.md - Gérer les secrets :
.enven local,st.secretssur 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
- Initialisation défensive — toujours
if "clé" not in st.session_state:avant d'utiliser une clé - Widget lié —
key="nom"sur un widget le synchronise automatiquement avecsession_state - Secrets hors du code —
.envetsecrets.tomldans.gitignore,.env.examplecommité - requirements.txt versionné —
pip freeze > requirements.txtdepuis un environnement virtuel dédié au projet - git push = redéploiement — sur Streamlit Community Cloud, chaque push sur
mainmet à 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ôle | Technique |
|---|---|
| Les filtres persistent entre les pages | Widgets avec key= dans la sidebar |
| Les clés session_state sont initialisées | if "clé" not in st.session_state: en début de script |
| requirements.txt est à jour | pip 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 propre | pip 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éance | Brique |
|---|---|
| Séance 1 | API REST Flask — endpoints, pagination, agrégation |
| Séance 2 | Dashboard Streamlit — widgets, layout, multi-pages |
| Séance 3 | Visualisations Plotly Express — graphiques interactifs |
| Séance 4 | SQL analytique — window functions, requêtes avancées |
| Séance 5 | Communication HTTP — découplage, sécurité, client structuré |
| Séance 6 | Session 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.