Streamlitの使い方を解説!Pythonで簡単にWebアプリを作ってみよう!

目次
ウマたん当サイト【スタビジ】の本記事では、Streamlitの使い方を解説していきます!StreamlitはPythonで実装されたオープンソースのWebアプリケーションのフレームワーク!直感的で簡単にWebアプリを開発できます!
こんにちは!スタビジ編集部です!
今回は「Streamlit」の使い方について解説していきます。
Streamlitを使えば、手軽にWebアプリを開発でき、データサイエンスの分野でも広く活用されています。
ぜひこの機会にマスターしていきましょう!
また、Streamlitについてさらに深く学びたい方は、私が講師を務める以下のUdemy講座もあわせてチェックしてみてください!
Streamlit(ストリームリット)とは
まずは「Streamlit(ストリームリット)」について簡単に見ていきましょう。
StreamlitとはPythonで実装されたオープンソースのWebアプリケーションのフレームワークです。
PythonのWebアプリケーションのフレームワークというと「Django」や「Flask」などがあり、その仲間になります。
Streamlitは以下の特徴があります。
Streamlitの最大の特徴はPythonのコード数行でアプリを開発できる”手軽さ”になります。
そのため、データサイエンスの分野でデータ分析結果を共有したい場合やWebUIを作成して動くかどうかすぐ確認したい場合によく利用されます。
ただ、開発の柔軟性は低いため、複雑なWebアプリを開発したい場合は「Django」や「Flask」を検討してみて下さい。
ウマたんStreamlitはPythonで簡単にWebアプリを開発できるフレームワーク!
データサイエンスや機械学習の分野でよく使われるんだね!
DjangoやFlaskの機能比較については以下の記事を参考にしてみて下さい。
【違いは?】Flask vs Django!PythonのWebアプリケーションフレームワークを徹底比較!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークである「Flask」と「Django」の違いを徹底的に比較していきます!なんとなーく分かっているようで分からない2つのフレームワークの違いをこの機会にしっかりおさえておきましょう!
Streamlitの使い方
「Streamlitの使い方」を見ていきます。
どうやってStreamlitを使ってアプリをデプロイできるか確認していきましょう。
サンプルアプリをデプロイする
まずはStreamlitをインストールしてアプリを実行してみます。
Streamlitをローカル環境にインストールします。
# streamlitをインストール
pip install streamlit
次にサンプルのhelloアプリを実行してみましょう。
streamlit hello
以下のような実行結果が表示されてブラウザ上でアプリが自動で立ち上がります。(E-mailアドレスを聞かれる場合がありますが、何も入力せずEnterで問題ないです。)

※Webブラウザに自動で表示されない場合にはブラウザで「localhost:8501」と入力してみて下さい。
また、サーバーを停止したい場合はターミナル上で「Ctrl + c」で停止できます。
このようにStreamlitではコマンド一つで簡単にWebサーバーが立ち上げることが出来ます。
ウマたんStreamlitは公式ページにインストール手順も載っているので、困ったら参考にしてみよう!
簡単なWebアプリを作ってみる
次は自分でWebアプリを作って動かしてみましょう。
以下の内容で、app.pyというファイルを作成します。
import streamlit as st
st.write("Hello World!")
app.pyを実行してみると同じように「localhost:8501」で結果を確認できます。
streamlit run app.py

streamlitではwebアプリを開発するために様々なウェジットが用意されています。
以下にウェジットを使った例を表示します。
import streamlit as st
#ヘッダー表示
st.header("streamlitテストアプリ")
#タイトル表示
st.title("Webアプリ開発中")
#テキスト表示
st.write("生活用アプリ")
#スライダー(デフォルトでは0~100)
st.title("スライダー")
weight = st.slider("今日の体重は")
st.write("今の体重は" + str(weight) +"kgです")
#ボタン
st.title("今日の天気は")
st.button("リセット", type="primary")
if st.button("晴れ?"):
st.write("今日も元気に!")
else:
st.write("傘を忘れずに")
#テキスト入力
st.title("やること")
st.text_input("今やること", key="do")
st.session_state.do #keyでアクセス
#チェックボックス
st.title("ごみ捨てチェック")
is_agree = st.checkbox("ごみ捨てた?")
if is_agree:
st.write("お疲れ様!")
else:
st.write("忘れずに!")
サーバーを起動した状態でもapp.pyを編集・保存すると、編集した内容をすぐに画面に表示できます。(画面の更新は必要です)

実際に触ってみると簡単にWebアプリが作れることを実感できると思います。
このウェジットに関数や条件式を組み合わせることで、より高度なことも実装できるのでいろいろ試してみて下さい!
ウマたんStreamlitのウェジットを使うと簡単にWebアプリを開発できるね!今回紹介した以外にもいろんな種類があるから試してみよう!
データを表示してみる
Streamlitは開発が簡単でデータの可視化にも優れているので、データサイエンスの分野でよく利用されています。
そこで、表の作成やデータの可視化についても見ていきましょう。
以下にサンプルを記載します。
import streamlit as st
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0, 100, (20,5)), columns=("国語", "数学", "理科", "社会", "英語"))
#表の表示
##サイドバーを活用
st.sidebar.title("テストの結果")
st.sidebar.dataframe(df)
#棒グラフ
st.title("国語の成績")
st.bar_chart(df["国語"])
#折れ線グラフ
st.title("数学")
st.line_chart(df["数学"])
#散布図
df["合計"]=df["国語"]+df["数学"]+df["英語"]+df["理科"]+df["社会"]
st.title("理科と数学の関係")
st.scatter_chart(df, x = "理科", y = "数学", size="合計")
#Mapに散布図を表示
st.title("東京駅付近に散布図")
mapdf = pd.DataFrame(
# 東京駅付近
np.random.rand(50, 2)/[50, 50] + [35.68, 139.76],
# latitude 緯度 longitude 経度
columns=['lat', 'lon']
)
st.map(mapdf)
StreamlitとPandasを組み合わせることで表やデータの可視化が可能になります。
Pandasについては以下の記事で詳しく解説していますのでチェックしてみて下さい。
【入門者向け】PythonのPandasの使い方・基本操作について簡単にまとめておく!当サイト【スタビジ】の本記事では、Pythonで頻繁に使われるPandasについて簡単にまとめておきたいと思います!データの読み込みや前処理や集計、可視化などによくつかわれるPandasについてしっかりおさえておきましょう!また最後にはPandasを含めたPythonの基礎文法の勉強方法についてまとめておきますよ!
実行結果が以下になります。

この他にもStreamlitでは様々な機能が用意されているのでぜひ試してみて下さい。
ウマたんデータを可視化した結果もWebアプリ上で簡単に表示できるね!
データサイエンス系で用いられるPythonのWebアプリのフレームワークに”Gradio“もあるので、参考にしてみて下さい。
Gradioを使ってPythonで簡単に機械学習Webアプリを開発してみよう!当サイト【スタビジ】の本記事では、Gradioの使い方を解説していきます!Gradioは機械学習モデルをデモするためのPythonライブラリ!誰でも機械学習モデルを使って予測や分類できるようなWebアプリを簡単に開発できます!
StreamlitのWebアプリを公開する
Streamlitで作成したWebアプリをインターネット上に公開していきましょう。
Webアプリを公開する方法は多くありますが、今回は「Streamlit Cloud」を使った方法を見ていきます。
Streamlit Cloudとは
「Streamlit Cloud」はStreamlitで開発したWebアプリを公開し、共有できるサービスです。
自身のGithubリポジトリにあるコードをStreamlit Cloudと連携することで簡単にアプリケーションをデプロイすることができます。
Streamlit CloudでWebアプリを公開する手順は以下の通りです。
Streamlit Cloudの事前準備
Webアプリを公開する前に①~③の事前準備が必要になります。
Streamlit CloudではGithubのアカウントが必要なので用意しておきましょう。
画面の指示に従って必要な情報を入力していくと、Gituhubアカウントとの接続が出来ます。
接続できると以下のようにアプリをデプロイするワークスペースの画面が表示されます。

公式ページにもガイドがあるので参考にしてみて下さい。
ウマたん最初にStreamlit CloudとGithubを連携させることが必要!
Gitについては以下の記事にまとめているので、Gitについて知りたい方はチェックしてみて下さい。
【入門】Gitの基本や勉強方法についてまとめておく!当サイト【スタビジ】の本記事では、Gitの基本と勉強方法についてまとめていきます!Gitはコードやドキュメントのバージョンを管理する上で非常に重要なツールです。Gitについて理解しておくことで開発効率が大きく変わるのでぜひおさえておきましょう!
Streamlit CloudにWebアプリをデプロイ
事前準備が出来たら、GithubのリポジトリからStreamlit CloudでWebアプリをデプロイして公開していきます。
自身のGithubリポジトリに必要なファイルをプッシュします。

「requirements.txt」ではGithub Cloudがアプリをデプロイするために必要なライブラリをインストールするための依存関係を定義します。

Streamlit Cloudではライブラリの依存関係の変更を検知して自動でアプリを再起動してしまうので、Streamlitなどライブラリのバージョンを固定することを推奨しています。
Githubリポジトリの準備が完了したら、Streamlit Cloudで「New App」ボタンからアプリをデプロイしていきます。

リポジトリやブランチ名、アプリのファイル名を入力して「Deploy!」ボタンを押すとStream Cloud上でアプリが立ち上がります。(10分程度かかります)
また右下の「Manage app」タブを開くと、アプリログを見ることが出来ます。エラーが発生した場合はこのログを元に原因を調査していきましょう。

デプロイが完了すると、ローカル環境と同じアプリが立ち上がっていることが確認できます。

スマホなど別の端末からURLをたたいて、アプリに接続できることを確認してみて下さい。
ウマたんたった数回の作業でアプリを公開できるなんてすごいね!
他にもWebアプリの公開方法として「ngrok」を使ったもあります。
以下の記事で詳しく解説しているので、参考にしてみて下さい。
ngrokの仕組みや使い方解説!Pythonで作ったアプリを外部公開してみよう!当サイト【スタビジ】の本記事では、ngrokの使い方を解説していきます!ngrokを使うとローカル環境で作成したWebアプリをグローバルに公開できる便利ツールです!ぜひ使い方をマスターしていきましょう!
Streamlit Cloudの注意点
Streamlit Cloudの無料版には以下の「注意点」があるので押さえておきましょう。
ウマたんStreamlit Cloudに制約があることに注意!特にパブリックアプリは誰でもアプリだけでなくリポジトリも見ることが出来ることを意識しておこう!
アプリのメモリは1GB
一つのアプリのメモリは1GBまでなので、処理の多いアプリやアクセス数が多いアプリを公開することは難しいです。
有料版は現在(2023年12月)商用利用のみなので、個人で利用する際はメモリ制限に注意しましょう。
DBや処理演算といったリソースを大量に使用する使い方には別のクラウドサービスを利用するのが一つの手になります。
アプリの公開
アプリの公開にはURLを知っていればだれでもアクセスが出来る”パブリックアプリ“と指定したユーザーしかアクセスできない”プライベートアプリ“があります。
接続するGithubリポジトリがプライベートリポジトリの場合、デプロイするアプリはプライベートアプリとなり、リポジトリの開発者権限がないとアプリにアクセス出来ないようになります。
また、アプリの”Settings”で公開範囲を指定したメールアドレスに設定することでプライベートアプリになります。

ただ、このプライベートアプリはアカウントで一つしか作成できないので、開発中のテスト利用などに使ってみて下さい。
7日間アクセスがないアプリはスリープモードに
7日間連続でアクセスがないとスリープモードになります。
スリープモードの際は表示される「Yes, get this app back up!」ボタンをクリックして、アプリの再実行が必要になります。
Streamlit 使い方 まとめ
ここまでご覧いただきありがとうございました!
本記事では、「Streamlit」の使い方について見ていきました。
最後にStreamlitの特徴をおさらいすると以下になります。
見てきた通り、数行単位のコードの組み合わせで簡単にWebアプリを構築することが出来て、データサイエンスの分野でよく利用されています。
また作成したWebアプリの公開も簡単に出来るので、ぜひ実際に触ってみて、いろんなアプリを作成してみて下さい。
Streamlitと同じ簡単にデータ可視化用のWebアプリが構築できるDashについて知りたい方は以下の記事を参考にしてみてください!
DashとPlotlyでデータ可視化Webアプリを作る方法を見ていこう!当サイト【スタビジ】の本記事では、DashとPlotlyを利用してデータ可視化Webアプリを作成する方法を解説していきます!Dashを使えば誰でも簡単にきれいなデータ可視化Webアプリを構築することができます!さらにPlotlyをDashにインテグレーションすることも簡単です!ぜひ使えるようになっておきましょう!
冒頭でもお伝えしましたが、Streamlitについて深く学びたい方は僕自身が講師を務める以下のUdemy講座をチェックしてみてください!
また、Pythonやデータサイエンスに興味がある方は、当メディアが運営する教育サービス「スタアカ(スタビジアカデミー)」の講座をチェックしてみてください。
| 【価格】 | ライトプラン:1,280円/月(全コースが受講し放題) プレミアムプラン:129,800円(通常149,800円・買い切り) |
|---|---|
| 【オススメ度】 | |
| 【サポート体制】 | |
| 【受講形式】 | オンライン形式 |
| 【学習範囲】 | 統計学・機械学習・ディープラーニングを網羅的に学ぶ 生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ SQLとPythonを組み合わせて実データを使った様々なワークを行う 実践的なビジネスフレームワークを学ぶ マーケティングの実行プラン策定 |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です!
プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1(30分×4回)を実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコースになっています!
Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!
その他のPythonのWebフレームワークについて以下の記事でまとめているので、参考にしてみて下さい。
【Django他】おすすめのPythonのWebフレームワークまとめ!それぞれの違いや使い方を解説!当サイト【スタビジ】の本記事では、PythonのWebフレームワークについて解説していきます。PythonのWebフレームワークを使うと簡単にWebアプリを開発出来て非常に便利です。それぞれの特徴を理解して、活用していきましょう!
また、PythonでWebアプリ以外にもゲーム開発をすることも出来ます。興味がある方は以下の記事をチェックしてみて下さい。
【サンプルコード付き】初心者でもPythonでゲームを簡単に作る方法を学ぼう!当サイト【スタビジ】の本記事では、Pythonでゲームを作る方法について解説していきます。実際にコードを書きながら、Pythonでゲームを作るための基礎を学んでいきましょう!読んだ内容を、スタアカの「StreamlitでWebアプリを作ってみよう!」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。

