Streamlit, l'une des bibliothèques les plus populaires pour la création d'applications web en Python, continue d'évoluer avec sa version 1.36.0. Cette mise à jour inclut des fonctionnalités très attendues qui révolutionnent la manière de créer des applications multipages. Deux nouveautés majeures se démarquent : st.Page
et st.navigation
, qui offrent une manière innovante de définir et de gérer les applications multipages.
Découvrez comment ces nouvelles fonctionnalités peuvent simplifier la navigation et améliorer l'expérience utilisateur de vos applications Streamlit. Nous vous expliquerons en détail comment utiliser st.Page
et st.navigation
.
St.Page : Configurer une Page pour vos Applications Multipages
La nouvelle fonction st.Page
introduite dans Streamlit 1.36.0 simplifie la configuration des pages pour les applications multipages. Cette fonctionnalité permet de créer des objets de type StreamlitPage
que vous pouvez ensuite utiliser avec st.navigation
pour structurer et contrôler la navigation de votre application.
Fonctionnalités et Paramètres de st.Page
Fonction Signature
st.Page(page, *, title=None, icon=None, url_path=None, default=False)
Paramètres
- page : Le chemin relatif du fichier Python ou une fonction Callable représentant le contenu de la page.
- title : Le titre de la page affiché dans le menu de navigation et l'onglet du navigateur. Par défaut, le titre est dérivé du nom de fichier ou de la fonction.
- icon : Un emoji ou une icône Material Symbol affiché à côté du titre et dans l'onglet du navigateur.
- url_path : Le chemin URL relatif à la racine de l'application. Par défaut, ce chemin est dérivé du nom de fichier ou de la fonction.
- default : Indique si la page est la page par défaut lorsqu'une application est chargée.
Exemple d'Utilisation de st.Page
Pour illustrer l'utilisation de st.Page
, voici un exemple simple où nous créons deux pages : page1.py
et une fonction Python page2
.
import streamlit as st
def page1():
st.title("Première page")
st.write("Bienvenue sur la première page de l'application.")
def page2():
st.title("Seconde page")
st.write("Vous êtes maintenant sur la seconde page.")
pg = st.navigation([
st.Page(page1, title="Page d'accueil", icon="🏠"),
st.Page(page2, title="À propos", icon="🔍")
])
pg.run()
Dans cet exemple :
- page1 est une fonction qui affiche un titre et un message.
- page2 est également une fonction affichant un titre et un message différent.
- st.Page est utilisé pour créer des objets de page avec des titres et des icônes personnalisés.
- st.navigation est appelé avec une liste de pages, permettant à l'utilisateur de naviguer entre elles.
La suite de notre article aborde la gestion de la navigation entre ces pages avec st.navigation
.
st.Navigation : Gérer la Navigation Multipage dans vos Applications Streamlit
Avec la version 1.36.0 de Streamlit, la fonctionnalité st.navigation
simplifie grandement la gestion de la navigation dans les applications multipages. Cette fonction agit comme un routeur, permettant à l'utilisateur de se déplacer facilement entre différentes pages de l'application.
Fonctionnalités et Paramètres de st.navigation
Fonction Signature
st.navigation(pages, *, position="sidebar")
Paramètres
- pages : Une liste d'objets
StreamlitPage
ou un dictionnaire où chaque clé représente un label de section et chaque valeur est une liste d'objetsStreamlitPage
. - position : La position du widget de navigation. La valeur par défaut est "sidebar", mais elle peut être définie sur "hidden" pour masquer le widget de navigation.
Retourne
- (StreamlitPage) : La page actuelle sélectionnée par l'utilisateur.
Exemple d'Utilisation de st.navigation
Voyons comment st.navigation
peut être utilisé pour gérer la navigation entre plusieurs pages en utilisant des routes définies par des fichiers Python ou des foncteurs.
Exemple 1 : Utilisation de st.navigation
avec une Liste de Pages
import streamlit as st
def page1():
st.write("Bienvenue sur la page 1.")
def page2():
st.write("Bienvenue sur la page 2.")
pg = st.navigation([st.Page(page1), st.Page("page2.py")])
pg.run()
Dans cet exemple :
- page1 et "page2.py" sont définis comme des pages navigables.
- st.navigation prend une liste d'objets
StreamlitPage
et retourne la page actuelle. - pg.run() exécute la page sélectionnée.
Exemple 2 : Utilisation de st.navigation
avec des Sections
Pour organiser les pages en sections, vous pouvez utiliser un dictionnaire :
import streamlit as st
pages = {
"Compte utilisateur" : [
st.Page("creer_compte.py", title="Créer un compte"),
st.Page("gerer_compte.py", title="Gérer le compte")
],
"Ressources" : [
st.Page("apprendre.py", title="Apprendre sur nous"),
st.Page("essayer.py", title="Essayer")
]
}
pg = st.navigation(pages)
pg.run()
Dans cet exemple, les sections "Compte utilisateur" et "Ressources" regroupent plusieurs pages, facilitant ainsi la navigation et l'organisation de l'application.
Widgets Partagés entre les Pages
Pour les applications qui nécessitent des widgets partagés entre plusieurs pages, utilisez st.session_state
et assignez des clés aux widgets communs :
import streamlit as st
def page1():
st.write(st.session_state.foo)
def page2():
st.write(st.session_state.bar)
# Widgets partagés par toutes les pages
st.sidebar.selectbox("Sélectionner Foo", ["A", "B", "C"], key="foo")
st.sidebar.checkbox("Activer Bar", key="bar")
pg = st.navigation(st.Page(page1), st.Page(page2))
pg.run()
Dans cet exemple :
- Des widgets such as
selectbox
etcheckbox
sont définis dans la barre latérale. - Les valeurs des widgets sont accessibles dans chaque page via
st.session_state
.
Ces nouvelles fonctionnalités de Streamlit 1.36.0 ouvrent de nouvelles possibilités pour la création d'applications web interactives et bien structurées. Vous pouvez dès maintenant intégrer st.Page
et st.navigation
pour améliorer la navigation et l'expérience utilisateur de vos applications Streamlit.
Revenez à notre page d'accueil
Streamlit, l'une des bibliothèques les plus populaires pour la création d'applications web en Python, continue d'évoluer avec sa version 1.36.0. Cette mise à jour inclut des fonctionnalités très attendues qui révolutionnent la manière de créer des applications multipages. Deux nouveautés majeures se démarquent : st.Page
et st.navigation
, qui offrent une manière innovante de définir et de gérer les applications multipages.
Découvrez comment ces nouvelles fonctionnalités peuvent simplifier la navigation et améliorer l'expérience utilisateur de vos applications Streamlit. Nous vous expliquerons en détail comment utiliser st.Page
et st.navigation
.
St.Page : Configurer une Page pour vos Applications Multipages
La nouvelle fonction st.Page
introduite dans Streamlit 1.36.0 simplifie la configuration des pages pour les applications multipages. Cette fonctionnalité permet de créer des objets de type StreamlitPage
que vous pouvez ensuite utiliser avec st.navigation
pour structurer et contrôler la navigation de votre application.
Fonctionnalités et Paramètres de st.Page
Fonction Signature
st.Page(page, *, title=None, icon=None, url_path=None, default=False)
Paramètres
- page : Le chemin relatif du fichier Python ou une fonction Callable représentant le contenu de la page.
- title : Le titre de la page affiché dans le menu de navigation et l'onglet du navigateur. Par défaut, le titre est dérivé du nom de fichier ou de la fonction.
- icon : Un emoji ou une icône Material Symbol affiché à côté du titre et dans l'onglet du navigateur.
- url_path : Le chemin URL relatif à la racine de l'application. Par défaut, ce chemin est dérivé du nom de fichier ou de la fonction.
- default : Indique si la page est la page par défaut lorsqu'une application est chargée.
Exemple d'Utilisation de st.Page
Pour illustrer l'utilisation de st.Page
, voici un exemple simple où nous créons deux pages : page1.py
et une fonction Python page2
.
import streamlit as st
def page1():
st.title("Première page")
st.write("Bienvenue sur la première page de l'application.")
def page2():
st.title("Seconde page")
st.write("Vous êtes maintenant sur la seconde page.")
pg = st.navigation([
st.Page(page1, title="Page d'accueil", icon="🏠"),
st.Page(page2, title="À propos", icon="🔍")
])
pg.run()
Dans cet exemple :
- page1 est une fonction qui affiche un titre et un message.
- page2 est également une fonction affichant un titre et un message différent.
- st.Page est utilisé pour créer des objets de page avec des titres et des icônes personnalisés.
- st.navigation est appelé avec une liste de pages, permettant à l'utilisateur de naviguer entre elles.
La suite de notre article aborde la gestion de la navigation entre ces pages avec st.navigation
.
st.Navigation : Gérer la Navigation Multipage dans vos Applications Streamlit
Avec la version 1.36.0 de Streamlit, la fonctionnalité st.navigation
simplifie grandement la gestion de la navigation dans les applications multipages. Cette fonction agit comme un routeur, permettant à l'utilisateur de se déplacer facilement entre différentes pages de l'application.
Fonctionnalités et Paramètres de st.navigation
Fonction Signature
st.navigation(pages, *, position="sidebar")
Paramètres
- pages : Une liste d'objets
StreamlitPage
ou un dictionnaire où chaque clé représente un label de section et chaque valeur est une liste d'objetsStreamlitPage
. - position : La position du widget de navigation. La valeur par défaut est "sidebar", mais elle peut être définie sur "hidden" pour masquer le widget de navigation.
Retourne
- (StreamlitPage) : La page actuelle sélectionnée par l'utilisateur.
Exemple d'Utilisation de st.navigation
Voyons comment st.navigation
peut être utilisé pour gérer la navigation entre plusieurs pages en utilisant des routes définies par des fichiers Python ou des foncteurs.
Exemple 1 : Utilisation de st.navigation
avec une Liste de Pages
import streamlit as st
def page1():
st.write("Bienvenue sur la page 1.")
def page2():
st.write("Bienvenue sur la page 2.")
pg = st.navigation([st.Page(page1), st.Page("page2.py")])
pg.run()
Dans cet exemple :
- page1 et "page2.py" sont définis comme des pages navigables.
- st.navigation prend une liste d'objets
StreamlitPage
et retourne la page actuelle. - pg.run() exécute la page sélectionnée.
Exemple 2 : Utilisation de st.navigation
avec des Sections
Pour organiser les pages en sections, vous pouvez utiliser un dictionnaire :
import streamlit as st
pages = {
"Compte utilisateur" : [
st.Page("creer_compte.py", title="Créer un compte"),
st.Page("gerer_compte.py", title="Gérer le compte")
],
"Ressources" : [
st.Page("apprendre.py", title="Apprendre sur nous"),
st.Page("essayer.py", title="Essayer")
]
}
pg = st.navigation(pages)
pg.run()
Dans cet exemple, les sections "Compte utilisateur" et "Ressources" regroupent plusieurs pages, facilitant ainsi la navigation et l'organisation de l'application.
Widgets Partagés entre les Pages
Pour les applications qui nécessitent des widgets partagés entre plusieurs pages, utilisez st.session_state
et assignez des clés aux widgets communs :
import streamlit as st
def page1():
st.write(st.session_state.foo)
def page2():
st.write(st.session_state.bar)
# Widgets partagés par toutes les pages
st.sidebar.selectbox("Sélectionner Foo", ["A", "B", "C"], key="foo")
st.sidebar.checkbox("Activer Bar", key="bar")
pg = st.navigation(st.Page(page1), st.Page(page2))
pg.run()
Dans cet exemple :
- Des widgets such as
selectbox
etcheckbox
sont définis dans la barre latérale. - Les valeurs des widgets sont accessibles dans chaque page via
st.session_state
.
Ces nouvelles fonctionnalités de Streamlit 1.36.0 ouvrent de nouvelles possibilités pour la création d'applications web interactives et bien structurées. Vous pouvez dès maintenant intégrer st.Page
et st.navigation
pour améliorer la navigation et l'expérience utilisateur de vos applications Streamlit.