Traffine I/O

日本語

2023-02-11

Streamlitでのマルチページアプリの作成

Streamlitのマルチページ機能

マルチページ機能を使用すると、1つのStreamlitアプリケーション内で複数のページを準備することができます。従来、Streamlitはシングルページ構造で動作するように設計されており、全てのインタラクションは同じページ内で完了します。

バージョン1.10.0から、Streamlitにマルチページ機能が組み込まれました。この追加により、複数のページにまたがるアプリを作成することができるため、Streamlitアプリケーションの範囲が広がりました。

ディレクトリ構成

まず、システム上に任意のフォルダを作成してください。このフォルダに、StreamlitアプリケーションのPythonファイルを配置します。

作成したフォルダ内にPythonファイルを作成します。この例では、ファイルをHome.pyとします。次に、最初に作成したフォルダ内にもう一つフォルダを作成し、pagesという名前を付けます。このフォルダの名前を厳密にpagesとすることが重要です。ここに個々のページのPythonファイルを配置します。

これらの手順に従うと、以下に示すようなフォルダの構造になります。

.
├── Home.py
└── pages
    ├── 02_😎.py
    └── 01_About.py

Streamlitのマルチページの実行

Home.pyファイルは、Streamlitアプリのメインエントリーポイントです。

Home.py
import streamlit as st

st.title("home")

これにより、Homeページに「home」というタイトルが表示されます。

About.pyファイルは、新しいページに「about」というタイトルを表示します。

About.py
import streamlit as st

st.title("about")

このスクリプトにより、Aboutページに「about」というタイトルが表示されます。

😎.pyファイルは、絵文字のタイトルを持つページを作成します。

😎.py
import streamlit as st

st.title("😎")

このスクリプトにより、「😎」というタイトルが表示される特定のページが作成されます。

アプリケーションを起動するには、以下のようにコマンドラインからHome.pyファイルを実行する必要があります。

bash
$ streamlit run Home.py

アプリケーションを起動した後、インターフェースにはサイドバーが表示され、pagesフォルダから自動的にページが含まれます。サイドバーから異なるページに移動することができます。

Streamlit multipage | 1

ページの順序管理

サイドバーのページの順序は、pagesフォルダ内のPythonファイルの名前を特定の方法で命名することで管理できます。

Pythonファイルの名前に01_02_などの数字を前置することで、ページがサイドバーに表示される順序を制御できます。ただし、これらの接頭辞はサイドバーには表示されません。

最終的なフォルダの構造は以下のようになります。

bash
.
├── Home.py
└── pages
    ├── 02😎.py
    └── 01_About.py

この設定では、ページは数字の接頭辞によって指示される順序で表示されます。まずAboutページが表示され、次に「😎」ページが表示されます。

Streamlit multipage | 2

参考

https://docs.streamlit.io/library/get-started/multipage-apps

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!