Introduction — Séance 6
Les cinq séances précédentes vous ont permis de construire une API REST Flask (séance 1), un dashboard Streamlit (séance 2), des graphiques Plotly (séance 3), des requêtes SQL analytiques (séance 4), et une communication HTTP entre le dashboard et l'API (séance 5). Cette dernière séance couvre trois sujets pour finaliser votre projet.
Contexte
Votre application fonctionne correctement en local — mais elle n'est pas encore prête à être partagée ou déployée. Trois problèmes courants à ce stade :
- L'état disparaît à chaque interaction : Streamlit réexécute le script entièrement à chaque clic. Certaines informations — région sélectionnée, filtres actifs, compteurs — doivent persister d'un re-run à l'autre.
- Le projet ne tourne pas sur une autre machine : les dépendances ne sont pas listées, les secrets sont dans le code, la structure est difficile à comprendre pour quelqu'un d'autre.
- L'application n'est pas accessible depuis l'extérieur : elle tourne uniquement en local.
Cette séance résout ces trois problèmes avec des outils simples et directs.
Dernière séance avant le projet
Cette séance clôture le cours. Les notions vues ici — persistance d'état, structure de projet, déploiement — sont directement utiles pour le projet final.
Objectifs de la séance
À la fin de cette séance, vous serez capable de :
- Utiliser
st.session_statepour persister des valeurs entre les re-runs - Créer des interactions croisées entre composants Streamlit (sélection sur un graphique qui filtre un tableau)
- Structurer un projet Python pour le partager ou le déployer
- Déployer une application Streamlit sur Streamlit Community Cloud depuis GitHub
Prérequis
- Séances 1 à 5 complétées : API Flask, dashboard Streamlit, graphiques Plotly, SQL analytique, appels HTTP
- Compte GitHub (gratuit) — nécessaire pour la partie déploiement
- Aucune nouvelle bibliothèque à installer pour les parties 1 et 2
Plan de la séance
| Partie | Contenu | Durée estimée |
|---|---|---|
| st.session_state | Syntaxe, initialisation, paramètre key, 3 cas d'usage | 25 min |
| Structure de projet | requirements.txt, venv, .gitignore, .env, README | 20 min |
| Déploiement | Streamlit Community Cloud, secrets, redéploiement automatique | 20 min |
| Exercices | Mise en pratique (4 exercices progressifs) | 40 min |
| Quiz | Validation des acquis | 10 min |
| Conclusion | Récapitulatif, checklist et bilan du cours | 5 min |
Approche de la séance
Les trois parties sont indépendantes. Chacune part d'un problème concret et fournit la solution avec du code fonctionnel.
Premier sujet : st.session_state, le mécanisme qui permet à votre application de conserver les choix de l'utilisateur entre les re-runs.