ホームページ >バックエンド開発 >Python チュートリアル >Streamlit のパーツ ページ ナビゲーションの簡素化

Streamlit のパーツ ページ ナビゲーションの簡素化

DDD
DDDオリジナル
2025-01-09 20:10:45199ブラウズ

Streamlit Part  Page Navigation Simplified

Streamlit では、ページ間のナビゲーションは、動的なマルチページ アプリケーションを構築するための強力な機能です。このチュートリアルでは、新しい st.navigation メソッドを使用して、Streamlit の st.page_linkページ ナビゲーションst.switch_page を探索して、シームレスなユーザー エクスペリエンスを作成します。


複数ページのアプリケーションを選択する理由は何ですか?

Streamlit は、もともとマルチページ アプリケーション フレームワークとして構築されたものではありません。ただし、進化するにつれて、Streamlit チームはマルチページ アプリケーションをサポートする機能を導入しました。これらの機能によりナビゲーションが簡素化され、動的 Web アプリケーションにカスタマイズ可能なオプションが提供されます。


プロジェクト構造の設定

このチュートリアルでは、プロジェクト構造は次のレイアウトに従います:

<code>project/
│
├── app.py  # 主应用程序文件
├── app_pages/
│   ├── intro.py
│   ├── navigation_intro.py
│   ├── page_link_demo.py
│   ├── switch_page_demo.py
</code>

app_pagesディレクトリ内の各ファイルは、アプリケーション内の個々のページを表します。


ナビゲーションの実装: app.py

app.py でページを定義することから始めましょう。このファイルは st.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>

この設定では、指定したページとそのアイコンを表示するサイドバー ナビゲーションが自動的に生成されます。


ページ 1: はじめに

intro.py ファイルはホームページとして使用されます。

<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>

ユーザーがこのページにアクセスすると、アプリケーションの概要と操作方法の説明が表示されます。


ページ 2: st.navigation について学ぶ

navigation_intro.py ドキュメントでは、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>

ページ 3: st.page_link を使用します

page_link_demo.py ファイルは、内部ページと外部ページ間のリンクを示します。

<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>

このメソッドを使用すると、ユーザーはアプリケーション内を移動したり、外部リソースにジャンプしたりできます。


ページ 4: st.switch_page を使用したプログラムによるナビゲーション

switch_page_demo.pyプログラムによるページの切り替えを説明するドキュメント。

<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>

このメソッドはナビゲーションをサイドバーから切り離し、ユーザーがページを切り替えるタイミングと方法をより詳細に制御できるようにします。


結論

Streamlit のナビゲーション機能を使用すると、使いやすいマルチページ アプリケーションを簡単に構築できます。 st.navigationst.page_linkst.switch_page を使用すると、直感的で動的なナビゲーション エクスペリエンスを作成できます。


コードを取得します: GitHub - jamesbmour/blog_tutorials
?関連する Streamlit チュートリアル: JustCodeIt
?私の仕事をサポートしてください: コーヒーを買ってください

以上がStreamlit のパーツ ページ ナビゲーションの簡素化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。