Streamlitとは
StreamlitはPython向けのWebアプリケーションフレームワークです。
Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
- 変数を地の文に書くだけで、GUIに出力される(マジックコマンド)
-
st.radio
やst.text_input
のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される
Streamlitの最新バージョン
Streamlitの最新バージョンはChangelogで確認できます。
2024/1/31時点で最新バージョンは1.30.0です。
1.30.0では次がHighlightsとしてアナウンスされています。
- st.switch_page
- st.query_params
st.switch_page
マルチページ対応の機能強化です。
1.10.0でリリースされたマルチページ対応はサイドバーでページを切り替えるものだったのですが、st.switch_page
関数でアプリケーションから能動的にページを切り替えられるようになりました。
例えばボタンを押したときにページを切り替えられますね。
import streamlit as st
# ディレクトリ構成は必ず次のように構成する。pagesはディレクトリ名を変更できない!
# your-repository/
# ├── pages/
# │ ├── page1.py
# │ └── page2.py
# └── multipage.py
if st.button("Home"):
# 最初のページに切り替える
st.switch_page("multipage.py")
if st.button("Page 1"):
# page1.pyに切り替える。なお、サブページは必ずpagesディレクトリに配置する必要がある
st.switch_page("pages/page1.py")
if st.button("Page 2"):
# page2.pyに切り替える。なお、サブページは必ずpagesディレクトリに配置する必要がある
st.switch_page("pages/page2.py")
st.write('Here is mainpage.')
st.query_params
URLクエリパラメータ対応の正式リリースです。
これまではst.experimental_get_query_params
というexperimentalカテゴリの機能として実装されていました。
import streamlit as st
# URLクエリパラメータを読み込む
params = st.query_params.to_dict()
# dictとして取得されることを確認する
st.write(params)
# 重複するキー(Repeated keys)に対応するにはキーを指定してget_allする
for key in params.keys():
values = st.query_params.get_all(key)
st.write(f'key: {key}')
st.write(values)
次のようにURLクエリパラメータを渡すことができます。
http://localhost:8501/?first_key=1&second_key=two&third_key=true&third_key=repeated
なお、残念ながら前述のマルチページ対応とは同時に使えません。遷移するときにURLクエリパラメータが消えてしまいます。また、st.switch_page
でURLクエリパラメータを渡す方法も今のところ用意されていません。残念。
Query parameters are cleared when navigating between pages in a multipage app.