0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

StreamlitでMPA(サイドバーなし)

Posted at

はじめに

Streamlitはpagesフォルダ内にスクリプトを配置するだけで、MPA(マルチページアプリケーション)を簡単に実装できます。(自動でサイドバーが設定されて各ページへのリンクが配置されます。)
※Next.js的な感じですね。

非常にお手軽で便利なのですが、サイドバーのリンクからしかページ遷移できなかったり、サイドバー自体を非表示にすることはできませんでした。

バージョン1.30.0で、サイドバーを隠しつつページ遷移もプログラムから実行できるようになりましたのでご紹介です。

※該当部分抜粋

🔄 Announcing st.switch_page to programmatically switch pages in multipage apps! Check out our docs to learn about this highly anticipated feature!

🧭 Sidebar navigation for multipage apps can be hidden via configuration (#7852).

やり方

  • .streamlit/config.tomlとpages/にスクリプトを配置します。
.
├── .streamlit/
│   └── config.toml
├── pages/
│   ├── page_1.py
│   └── page_2.py
└── app.py
config.toml
[client]
showSidebarNavigation = false
  • ページ遷移は以下のように指定できます。
import streamlit as st

if st.button("Home"):
    st.switch_page("app.py")
if st.button("Page 1"):
    st.switch_page("pages/page_1.py")
if st.button("Page 2"):
    st.switch_page("pages/page_2.py")

おわりに

あとはCSSの自由な指定とパフォーマンス向上に期待です!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?