こんにちは、JS2IIUです。
StreamlitでUI部品を組み合わせたアプリを作ってみます。始めて作る方向けに丁寧に解説していきます。今回もよろしくお願いします。
1. はじめに
Pythonで簡単にWebアプリを作れるツールをご存じですか?
Streamlit(ストリームリット)は、データ分析や機械学習の結果を手軽に可視化・共有できる人気のフレームワークです。複雑なHTMLやJavaScriptを一切書かずに、PythonのコードだけでWebアプリを作成できます。
この記事では、Streamlitを初めて触る方向けに、テキスト表示・ボタン・スライダーといった基本的なUI部品を使った簡単なアプリを一緒に作っていきます。
2. 環境の準備
ステップ1:Pythonのインストール
まず、Pythonがインストールされていることを確認してください。
まだの方は、公式サイト(https://www.python.org/)から最新版をインストールしましょう。
ステップ2:仮想環境の作成(任意)
環境を汚したくない方は、Pythonの仮想環境を作成するのがおすすめです。
python -m venv venv
source venv/bin/activate # Windowsの方は venv\Scripts\activateステップ3:Streamlitのインストール
以下のコマンドでStreamlitをインストールします。
pip install streamlitインストールが完了したら、Streamlitが使える状態になります。
3. 最初のStreamlitアプリの作成
ステップ1:ファイルを作る
任意のフォルダに、以下の名前でPythonファイルを作成します。
app.py
import streamlit as st
st.write("こんにちは、Streamlit!")このコードでは、st.write()関数を使ってシンプルにテキストを表示しています。
4. ボタンの追加と動作
次に、ボタンを画面に追加して、ボタンを押したときだけ特定のメッセージを表示してみましょう。
ステップ2:コードを追記
import streamlit as st
st.write("こんにちは、Streamlit!")
if st.button("クリックしてね"):
st.write("ボタンが押されました!")解説
st.button("クリックしてね")
画面にボタンが表示されます。if文の中にあるst.write(...)は、ボタンが押された時だけ実行されます。
5. スライダーの追加と値の取得
次は、スライダーで数値を選び、その値を表示する機能を追加しましょう。
ステップ3:コードを追記
import streamlit as st
st.write("こんにちは、Streamlit!")
if st.button("クリックしてね"):
st.write("ボタンが押されました!")
age = st.slider("年齢を選んでください", 0, 100, 25)
st.write("あなたの年齢は", age, "歳です。")解説
st.slider():スライダーを表示します。- 第1引数はスライダーのラベル
- 0が最小値、100が最大値、25が初期値
st.write()でスライダーで選んだ値を表示しています。
6. アプリ全体の完成コード
ここまでの内容をすべて組み合わせた、完成版のコードがこちらです。
import streamlit as st
st.title("はじめてのStreamlitアプリ")
st.write("こんにちは、Streamlitへようこそ!")
if st.button("クリックしてね"):
st.write("ボタンが押されました!")
age = st.slider("年齢を選んでください", 0, 100, 25)
st.write("あなたの年齢は", age, "歳です。")st.title()で大きなタイトルを表示することもできます。
7. 実行してみよう
アプリの準備ができたら、いよいよ実行です!
ステップ4:ターミナル(またはコマンドプロンプト)で以下を入力
streamlit run app.pyブラウザが自動的に開き、作成したアプリが表示されるはずです。
もし自動で開かない場合は、表示されたURL(通常は http://localhost:8501)をコピーしてブラウザに貼り付けてください。

8. まとめと次のステップ
今回学んだこと
- Streamlitの基本的な使い方
- テキストの表示(
st.write/st.title) - ボタンの表示とクリック判定(
st.button) - スライダーでの値の取得(
st.slider)
次におすすめのステップ
Streamlitには多くのUIパーツが揃っていますので、今回作ったのと同じ要領で色々と試してみてください!
st.text_input(テキスト入力)st.selectbox(選択式メニュー)st.image(画像の表示)st.dataframe(データフレームの表示)
少しずつ機能を学んでいくことで、あなただけの便利なアプリが作れるようになります!
9. 参考リンク
最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。
最後まで読んでいただきありがとうございます。


コメント