【Pythonコラム】Pythonで爆速Webアプリ開発!Streamlit入門




Pythonで爆速Webアプリ開発!Streamlit入門

「PythonでWebアプリを作りたいけど、HTMLやCSS、JavaScriptはちょっと…」そんな風に思っているあなたに朗報です! Pythonのライブラリ Streamlit を使えば、驚くほど簡単にWebアプリを開発できます。面倒なフロントエンドの知識はほぼ不要! Pythonのコードを書くだけで、インタラクティブなWebアプリケーションが完成します。

Streamlitとは?

Streamlitは、データサイエンティストや機械学習エンジニアが、自分の作ったモデルや分析結果を簡単に共有できることを目指して開発されたライブラリです。 特徴は以下のとおりです。

  • シンプルで直感的: Pythonの知識があればすぐに使いこなせます。
  • インタラクティブ: スライダー、ボタン、セレクトボックスなど、様々なUI要素を簡単に配置できます。
  • ライブリロード: コードを保存すると自動的にアプリが更新されるので、開発がスムーズに進みます。
  • コンポーネント豊富: グラフ表示、地図表示、画像処理など、様々な機能がコンポーネントとして提供されています。
  • クラウドデプロイ: Streamlit Cloudなどを使えば、簡単にWeb上に公開できます。

Streamlitで何ができるの?

Streamlitは、以下のような用途に最適です。

  • データ可視化: pandasのDataFrameやmatplotlibのグラフなどをインタラクティブに表示できます。
  • 機械学習モデルのデモ: 自分で作った機械学習モデルの予測結果を、Web上で試せるようにできます。
  • ダッシュボード作成: データの集計結果やKPIをリアルタイムに表示するダッシュボードを作成できます。
  • 社内ツール開発: 簡単な入力フォームや、データ処理を行うWebアプリを短時間で開発できます。

Streamlitを試してみよう!

Streamlitを使うための準備は簡単です。 ターミナルで以下のコマンドを実行してインストールします。

pip install streamlit

インストールが完了したら、簡単なサンプルコードを書いてみましょう。 my_app.py というファイルを作成し、以下のコードを記述します。

import streamlit as st
import pandas as pd

st.title('初めてのStreamlitアプリ')

st.write('これは簡単なStreamlitアプリです。')

# DataFrameを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 28],
        '都市': ['Tokyo', 'New York', 'London']}
df = pd.DataFrame(data)

# DataFrameを表示
st.write('DataFrame:')
st.dataframe(df)

# スライダーを作成
age = st.slider('年齢を選択してください', 0, 100, 25)
st.write('選択された年齢:', age)

# ボタンを作成
if st.button('こんにちは!'):
    st.write('こんにちは!')

このコードを保存したら、ターミナルで以下のコマンドを実行してアプリを起動します。

streamlit run my_app.py

ブラウザが自動的に開き、Streamlitアプリが表示されます。 コードを変更して保存すると、アプリが自動的に更新されることを確認してみてください。

コード解説

上記のサンプルコードについて、簡単に解説します。

  • import streamlit as st: Streamlitライブラリをインポートし、stという名前で使えるようにします。
  • st.title('初めてのStreamlitアプリ'): アプリのタイトルを表示します。
  • st.write('これは簡単なStreamlitアプリです。'): テキストを表示します。 st.write() は、様々な型のデータを表示できる便利な関数です。
  • st.dataframe(df): pandasのDataFrameをテーブルとして表示します。
  • st.slider('年齢を選択してください', 0, 100, 25): スライダーを作成します。 引数には、ラベル、最小値、最大値、初期値を指定します。
  • st.button('こんにちは!'): ボタンを作成します。 ボタンがクリックされると、st.button()True を返します。

まとめ

Streamlitを使うことで、Web開発の知識がなくても、PythonだけでインタラクティブなWebアプリを簡単に作成できます。 データサイエンスや機械学習の分野だけでなく、様々な用途で活用できるでしょう。 ぜひStreamlitを試して、Webアプリ開発の楽しさを体験してみてください! Streamlitの公式ドキュメント(https://streamlit.io/docs)には、さらに詳しい情報や、様々なコンポーネントの使い方が記載されています。



< 画像認識
コラム一覧に戻る
lambda式 >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!