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アプリのメインエントリーポイントです。
import streamlit as st
st.title("home")
これにより、Homeページに「home」というタイトルが表示されます。
About.py
ファイルは、新しいページに「about」というタイトルを表示します。
import streamlit as st
st.title("about")
このスクリプトにより、Aboutページに「about」というタイトルが表示されます。
😎.py
ファイルは、絵文字のタイトルを持つページを作成します。
import streamlit as st
st.title("😎")
このスクリプトにより、「😎」というタイトルが表示される特定のページが作成されます。
アプリケーションを起動するには、次のようにコマンドラインからHome.py
ファイルを実行する必要があります。
$ streamlit run Home.py
アプリケーションを起動した後、インターフェースにはサイドバーが表示され、pages
フォルダから自動的にページが含まれます。サイドバーから異なるページに移動することができます。
ページの順序管理
サイドバーのページの順序は、pages
フォルダ内のPythonファイルの名前を特定の方法で命名することで管理できます。
Pythonファイルの名前に01_
、02_
などの数字を前置することで、ページがサイドバーに表示される順序を制御できます。ただし、これらの接頭辞はサイドバーには表示されません。
最終的なフォルダの構造は次のようになります。
.
├── Home.py
└── pages
├── 02😎.py
└── 01_About.py
この設定では、ページは数字の接頭辞によって指示される順序で表示されます。まずAboutページが表示され、次に「😎」ページが表示されます。
参考