技術関連メディア

Streamlitで使えるPythonコードまとめ

ロジワカ

データサイエンス向けに使われているstreamlitで遊んでみました。

Pythonコードのみで様々な実装を行うことができるフレームワークです。

勉強がてら、使用したコードをメモしていきたいと思います(。・ω・。)ノシ♬

ちなみに、たった15行のコードでこのようなUIが実装できます。

※ツイートの「25行」は記述ミスです💦

※コード記述例は一番最後に載せています🐾


環境構築

衝突を避けるため、venvなど仮想環境での実行を推奨します。

仮想環境の構築に関してはこちらをご参照ください。

フォルダとpyファイルを用意し、ターミナルに

pip install streamlit

と記述しインストールを行います。

この時、

ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

とエラーが出た場合は、

python.exe -m pip install --upgrade pip

を実行してpipをアップグレードしてください。

完了したら、

streamlit run app.py

で任意のpyファイルを実行します。

初回のみ、streamlitからメールアドレスを求められることがありますが、空欄にすることでスルーできます。

pyファイルを実行すると自動的にローカルでブラウザが起動します。

環境構築は以上です。


Pythonコード一覧

st.checkbox("チェックボックス")
st.button("ボタン")
st.selectbox("1番目の選択肢がデフォルトとして表示される選択欄", ("選択肢1", "選択肢2"))
st.multiselect("デフォルトでは空欄となっている選択欄", ("選択肢1", "選択肢2"))
st.radio("ラジオボタン", ("選択1", "選択2"))
st.text_input("テキストを1行に入れる枠")
st.text_area("枠を広げることができるテキスト入力欄")
st.slider("スライド", 0, 100, 50)
st.file_uploader("ファイルをアップロードできる")
st.sidebar.text_input("サイドバーでテキスト入力")

エラー

構文に問題がある場合のエラーはターミナル上と画面上に表示されます。

画像の赤い枠の部分がエラー文です。

具体的に書かれているので読みやすいです。


問題点

・選択肢のテキストがぼんやりしている

・デフォルトで表示される補足文が英語になってしまう

・ホットリロードではない

・複雑なUI実装には向いていない

また、streamlitのデフォルトなのか、画面の右上にリロードアクションと設定のメニューが出ます。


今回の記述例

import streamlit as st

check = st.checkbox("チェックボックス") 

if check:
  st.button("ボタン")
  st.selectbox("1番目の選択肢がデフォルトとして表示される選択欄", ("選択肢1", "選択肢2"))
  st.multiselect("デフォルトでは空欄となっている選択欄", ("選択肢1", "選択肢2"))
  st.radio("ラジオボタン", ("選択1", "選択2"))
  st.text_input("テキストを1行に入れる枠")
  st.text_area("枠を広げることができるテキスト入力欄")
  st.slider("スライド", 0, 100, 50)
  st.file_uploader("ファイルをアップロードできる")
  
  # サイドバー
  st.sidebar.text_input("サイドバーでテキスト入力")
  st.sidebar.text_area("入力欄")
  st.sidebar.slider("スライド", 0, 100, 50)
  st.sidebar.file_uploader("ファイルを選択")

参照

Streamlitで手軽にWebアプリ開発

https://www.alpha.co.jp/blog/202304_02

Streamlit documentation

https://docs.streamlit.io/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA