Dans Streamlit, la navigation entre les pages est une fonctionnalité puissante pour créer des applications multipages dynamiques. Ce didacticiel explorera la navigation dans les pages dans Streamlit, en utilisant les nouvelles méthodes st.navigation
, st.page_link
et st.switch_page
pour créer une expérience utilisateur transparente.
Streamlit n'a pas été conçu à l'origine comme un cadre d'application multipage. Cependant, au fur et à mesure de son évolution, l'équipe Streamlit a introduit des fonctionnalités pour prendre en charge les applications multipages. Ces fonctionnalités simplifient la navigation et offrent des options personnalisables pour les applications Web dynamiques.
Dans ce tutoriel, la structure de notre projet suit la disposition suivante :
<code>project/ │ ├── app.py # 主应用程序文件 ├── app_pages/ │ ├── intro.py │ ├── navigation_intro.py │ ├── page_link_demo.py │ ├── switch_page_demo.py </code>
app_pages
Chaque fichier du répertoire représente une page individuelle de l'application.
Commençons par définir la page dans app.py
. Ce fichier utilise st.navigation
pour configurer le menu de navigation.
<code class="language-python"># app.py import streamlit as st # 页面导航 pages = [ st.Page("app_pages/intro.py", title="简介", icon="?"), st.Page("app_pages/navigation_intro.py", title="st.navigation", icon="?"), st.Page("app_pages/page_link_demo.py", title="st.page_link", icon="?"), st.Page("app_pages/switch_page_demo.py", title="st.switch_page", icon="?"), ] # 将页面添加到侧边栏导航 pg = st.navigation(pages, position="sidebar", expanded=True) # 运行应用程序 pg.run() </code>
Avec ce paramètre, la navigation dans la barre latérale sera automatiquement générée pour afficher la page spécifiée et son icône.
intro.py
est utilisé comme page d'accueil.
<code class="language-python"># app_pages/intro.py import streamlit as st def intro(): st.title("Streamlit 页面导航教程") st.write("欢迎来到本Streamlit页面导航教程!") st.write("使用侧边栏在不同页面之间导航。") if __name__ == "__page__": intro() </code>
Lorsque les utilisateurs visitent cette page, ils verront une introduction à l'application et des instructions sur la façon de naviguer.
navigation_intro.py
explique comment utiliser st.navigation
.
<code class="language-python"># app_pages/navigation_intro.py import streamlit as st def navigation_intro(): st.title("st.navigation简介") st.write("`st.navigation`函数配置多页面Streamlit应用程序。") st.code(""" pages = [ st.Page("app_pages/intro.py", title="简介", icon="?"), st.Page("app_pages/page1.py", title="页面1", icon="1️⃣"), st.Page("app_pages/page2.py", title="页面2", icon="2️⃣"), ] pg = st.navigation(pages) pg.run() """, language="python") st.write("这将创建一个侧边栏菜单,其中包含`pages`列表中指定的页面。") if __name__ == "__page__": navigation_intro() </code>
Le fichier page_link_demo.py
montre les liens entre les pages internes et externes.
<code class="language-python"># app_pages/page_link_demo.py import streamlit as st def page_link(): st.title("使用st.page_link") st.page_link("app_pages/intro.py", label="跳转到简介", icon="?") st.page_link("app_pages/page_link_demo.py", label="刷新本页", icon="?") st.page_link("https://www.streamlit.io/", label="访问Streamlit", icon="?") if __name__ == "__page__": page_link() </code>
Cette méthode permet aux utilisateurs de naviguer dans l'application ou d'accéder à des ressources externes.
switch_page_demo.py
Document démontrant le changement de page par programmation.
<code class="language-python"># app_pages/switch_page_demo.py import streamlit as st def switch_page(): st.title("使用st.switch_page") st.write("`st.switch_page`允许您以编程方式切换页面。") st.code(""" if st.button("跳转到简介"): st.switch_page("app_pages/intro.py") """, language="python") if st.button("跳转到简介"): st.switch_page("app_pages/intro.py") if __name__ == "__page__": switch_page() </code>
Cette méthode dissocie la navigation de la barre latérale, offrant ainsi plus de contrôle sur le moment et la manière dont les utilisateurs changent de page.
Les fonctionnalités de navigation de Streamlit facilitent la création d'applications multipages conviviales. En utilisant st.navigation
, st.page_link
et st.switch_page
, vous pouvez créer une expérience de navigation intuitive et dynamique.
? Récupérer le code : GitHub - jamesbmour/blog_tutorials
?Tutoriel Streamlit associé : JustCodeIt
?Soutenez mon travail : Achetez-moi un café
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!