Skip to content

Streamlit Session State: Le guide essentiel pour démarrer

Updated on

Streamlit a révolutionné notre approche du développement web, en particulier dans le domaine de la science des données et de l'apprentissage automatique. L'une de ses fonctionnalités les plus puissantes est l'état de session. Cet article vise à fournir un guide complet sur l'état de session Streamlit, son utilisation, ses avantages et sa comparaison avec d'autres outils de gestion de l'état.

Avez-vous déjà entendu parler de cet outil incroyable d'analyse de données et de visualisation de données, qui transforme votre application Streamlit en Tableau ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre application Streamlit.

PyGWalker pour la visualisation de données dans Streamlit (opens in a new tab)

Introduction à Streamlit et à l'état de session

Qu'est-ce que Streamlit ?

Streamlit est une bibliothèque Python open-source qui permet aux développeurs de créer facilement des applications web interactives. Elle est particulièrement populaire parmi les scientifiques des données et les ingénieurs en apprentissage automatique en raison de sa simplicité et de sa capacité à créer rapidement des applications web basées sur les données.

Comprendre l'état de session dans Streamlit

Dans le contexte du développement web, une session fait référence à la période pendant laquelle un utilisateur interagit avec une application web. Les données que l'application stocke concernant cette interaction de l'utilisateur sont appelées l'état de session. Dans Streamlit, l'état de session permet aux développeurs de conserver des données entre les exécutions, ce qui permet de créer des applications plus interactives et dynamiques.

Utilisation de l'état de session dans Streamlit

Démarrez rapidement avec l'état de session dans Streamlit

L'utilisation de l'état de session dans Streamlit est simple. Elle vous permet de stocker des données qui persistent entre les exécutions de l'application. Par exemple, si vous souhaitez stocker l'entrée d'un utilisateur à partir d'un widget de saisie de texte, vous pouvez le stocker dans l'état de session. Voici les étapes :

  1. Installez Streamlit si vous ne l'avez pas encore fait : pip install streamlit
  2. Créez un nouveau fichier Python et importez Streamlit : import streamlit as st
  3. Initialisez votre état de session : if 'my_var' not in st.session_state: st.session_state['my_var'] = 0
  4. Utilisez votre état de session dans votre application : st.session_state['my_var'] += 1

Voici un exemple de code :

import streamlit as st
 
if 'user_input' not in st.session_state:
    st.session_state['user_input'] = ''
 
user_input = st.text_input("Entrez du texte")
if user_input:
    st.session_state['user_input'] = user_input
 
st.write(f"Vous avez saisi : {st.session_state['user_input']}")

Dans cet exemple, l'entrée de l'utilisateur est stockée dans l'état de session et persiste même si l'application est relancée.

Au-delà des bases : cas d'utilisation avancés et bonnes pratiques

Une fois que vous avez compris les bases, le véritable plaisir commence. L'état de session Streamlit ouvre tout un monde de cas d'utilisation avancés. Par exemple, vous pouvez l'utiliser pour stocker des informations d'authentification de l'utilisateur. Voici un exemple simple :

if 'username' not in st.session_state:
    st.session_state['username'] = ''
 
username = st.text_input("Entrez votre nom d'utilisateur")
if username:
    st.session_state['username'] = username
 
st.write(f"Bonjour, {st.session_state['username']} !")

Dans cet exemple, le nom d'utilisateur de l'utilisateur est stocké dans l'état de session et persiste même si l'application est relancée.

N'oubliez pas, avec un grand pouvoir vient une grande responsabilité. Il est crucial de gérer efficacement votre état de session afin de garantir que votre application fonctionne comme une machine bien huilée.

Libérer la puissance de l'état de session Streamlit

L'état de session Streamlit : Un changement de paradigme dans le développement web

L'état de session Streamlit est un changement de paradigme dans le développement web. Il permet de créer des applications dynamiques et interactives, car les données peuvent persister entre les exécutions. C'est une aubaine pour les applications qui nécessitent une saisie utilisateur ou qui comportent plusieurs étapes.

L'état de session Streamlit : Une arme secrète en apprentissage automatique et en science des données

Dans le monde de l'apprentissage automatique et de la science des données, l'état de session Streamlit est l'arme secrète dont vous ignoriez avoir besoin. Il peut être utilisé pour stocker tout, des :

  • Paramètres de modèle
  • Entrées utilisateur pour les filtres de données
  • Résultats intermédiaires de traitement de données

Cela signifie que vous pouvez éviter les calculs inutiles et augmenter les performances de votre application.

Les petits détails : performances et limitations de l'état de session Streamlit

Bien que l'état de session Streamlit soit un outil puissant, il est également important de connaître ses limitations. L'état de session est stocké en mémoire, ce qui peut augmenter la consommation de mémoire de votre application. Il est donc crucial de gérer correctement l'état de session et d'éviter de stocker de grandes quantités de données susceptibles de causer des problèmes de performances.

État de session Streamlit vs autres outils de gestion de l'état

Comparaison : État de session Streamlit vs st.cache

Streamlit offre une autre fonctionnalité de gestion de l'état : st.cache. Bien que st.cache et l'état de session permettent tous deux de stocker des données entre les exécutions, ils ont des objectifs différents. st.cache est conçu pour mettre en cache les résultats de calculs longs afin d'améliorer les performances, tandis que l'état de session est conçu pour stocker les données d'interaction utilisateur entre les exécutions.

Voici un exemple simple d'utilisation de st.cache :

@st.cache
def expensive_computation():
    # Quelques calculs coûteux sont effectués ici
    return result
 
result = expensive_computation()

Dans cet exemple, le résultat du calcul coûteux est mis en cache et réutilisé lors des exécutions suivantes, ce qui améliore les performances de l'application. Avez-vous entendu parler de cet outil incroyable d'analyse de données et de visualisation de données qui transforme votre application Streamlit en Tableau?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort. Regardez cette vidéo incroyable réalisée par Cómo explorar datos con PyGWalker en Python (opens in a new tab) qui démontre les étapes détaillées pour renforcer votre application Streamlit avec cette puissante bibliothèque de visualisation de données en Python !


Un grand merci à Sven et sa formidable contribution (opens in a new tab) à la communauté PyGWalker !

De plus, vous pouvez également consulter la page GitHub de PyGWalker (opens in a new tab) pour plus d'exemples de PyGWalker.

Streamlit Session State vs Redux : une analyse détaillée

Redux est une bibliothèque populaire de gestion de l'état pour les applications JavaScript, en particulier celles construites avec React. Il fournit un magasin centralisé pour l'état qui doit être utilisé dans l'ensemble de votre application, avec des règles garantissant que l'état ne peut être mis à jour que de manière prévisible.

D'autre part, Streamlit Session State est une fonctionnalité de la bibliothèque Streamlit qui permet aux données de persister entre les exécutions de l'application. Elle est principalement utilisée dans les applications Python côté serveur pour créer des applications Web interactives et dynamiques.

Bien que Redux et Streamlit Session State servent le même objectif de gestion de l'état, ils sont utilisés dans des contextes différents et ont des fonctionnalités différentes :

  • Langage de programmation : Redux est utilisé avec JavaScript, tandis que Streamlit Session State est utilisé avec Python.
  • Type d'application : Redux est généralement utilisé dans les applications côté client, tandis que Streamlit Session State est utilisé dans les applications côté serveur.
  • Persistance de l'état : Dans Redux, l'état persiste tant que l'utilisateur est sur le site Web ou jusqu'à ce que l'état soit explicitement effacé. Dans Streamlit, l'état de session persiste entre les exécutions de l'application, mais il est effacé lorsque l'utilisateur ferme l'application.
  • Courbe d'apprentissage : Redux a une courbe d'apprentissage plus raide en raison de concepts tels que les réducteurs, les actions et les intergiciels. Streamlit Session State, en revanche, est plus simple et plus facile à utiliser, surtout pour ceux qui sont déjà familiers avec Python.

Streamlit Session State vs Local Storage et Context API

Local Storage et l'API de contexte sont d'autres solutions de gestion de l'état utilisées dans les applications JavaScript.

Local Storage est un objet de stockage Web qui vous permet de stocker des données de manière persistante dans le navigateur de l'utilisateur. Les données stockées dans Local Storage n'ont pas de durée de validité et elles restent même après la fermeture et la réouverture du navigateur. Il est utile pour stocker de petites quantités de données telles que les préférences de l'utilisateur ou les données de session.

L'API de contexte, introduite dans React 16.3, vous permet de partager des données pouvant être considérées comme "globales" pour un arbre de composants React, telles que l'utilisateur actuellement authentifié, le thème ou la langue. Elle est conçue pour partager des données pouvant être considérées comme globales pour un arbre de composants React.

Bien que ces outils soient puissants en eux-mêmes, ils ne sont pas directement comparables à Streamlit Session State car ils sont utilisés dans des langages de programmation et des contextes d'application différents :

  • Langage de programmation : Local Storage et l'API de contexte sont utilisés avec JavaScript, tandis que Streamlit Session State est utilisé avec Python.
  • Persistance des données : Local Storage permet aux données de persister même lorsque le navigateur est fermé et rouvert, tandis que l'API de contexte et Streamlit Session State n'ont pas cette fonctionnalité.
  • Cas d'utilisation : Local Storage est utile pour stocker de petites quantités de données telles que les préférences de l'utilisateur ou les données de session. L'API de contexte est utile pour partager des données globales entre un arbre de composants React. Streamlit Session State est utile pour stocker des données qui doivent persister entre les exécutions de l'application.

Gestion des types de données complexes dans Streamlit Session State

Streamlit Session State ne se limite pas à stocker des types de données simples tels que des entiers ou des chaînes de caractères. Il peut également gérer des types de données complexes tels que les listes, les dictionnaires, les ensembles et même les objets personnalisés. Cela en fait un outil polyvalent pour gérer l'état de vos applications Streamlit.

Par exemple, vous pouvez stocker une liste de saisies utilisateur dans l'état de la session :

if 'user_inputs' not in st.session_state:
    st.session_state['user_inputs'] = []
 
user_input = st.text_input("Entrez du texte")
if user_input:
    st.session_state['user_inputs'].append(user_input)
 
st.write(f"Vous avez saisi : {st.session_state['user_inputs']}")

Dans cet exemple, chaque fois que l'utilisateur saisit du texte, celui-ci est ajouté à une liste stockée dans l'état de la session.

Conclusion

Streamlit Session State est un outil puissant pour gérer l'état de vos applications Streamlit. Il vous permet de créer des applications plus interactives et dynamiques en stockant des données entre les exécutions. Que vous soyez débutant et que vous commencez tout juste avec Streamlit ou que vous soyez un développeur expérimenté cherchant à optimiser vos applications, comprendre et utiliser efficacement Session State peut considérablement améliorer votre processus de développement web.

Foire aux questions

Qu'est-ce que Session State dans Streamlit ?

Session State dans Streamlit est une fonctionnalité qui permet aux données de persister entre les exécutions de l'application. Elle est utilisée pour stocker des données sur les interactions de l'utilisateur, ce qui permet de créer des applications plus interactives et dynamiques.

Quels sont les inconvénients de Streamlit ?

Bien que Streamlit soit un outil puissant pour créer des applications web interactives, il présente quelques limitations. Par exemple, il est principalement conçu pour le prototypage et peut ne pas convenir à la création d'applications web complexes à grande échelle. De plus, en tant que bibliothèque relativement nouvelle, il peut manquer de certaines fonctionnalités présentes dans des frameworks de développement web plus matures.

Les sessions Streamlit expirent-elles ?

Les sessions Streamlit n'expirent pas d'elles-mêmes. Cependant, les données de l'état de la session sont effacées lorsque l'utilisateur ferme l'application.

Comment utiliser l'état de session dans asp.net ?

L'état de session dans ASP.NET est une fonctionnalité qui vous permet de stocker et de récupérer temporairement des valeurs spécifiques à un utilisateur. Vous pouvez l'utiliser en appelant l'objet Session et en lui attribuant des valeurs, comme Session["NomUtilisateur"] = "John Doe";. Notez que cela est différent de l'état de session de Streamlit, qui est utilisé dans les applications Python.