データサイエンス向けに使われている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ファイルを実行すると自動的にローカルでブラウザが起動します。
環境構築は以上です。
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アプリ開発
Streamlit documentation