Streamlitとは?簡単にWebアプリを作る特徴や導入手順を解説

  • 2026.07.23
       
Streamlitとは?簡単にWebアプリを作る特徴や導入手順を解説

Pythonを使ったデータ分析や機械学習では、分析結果を他者に共有したり、作成したAIモデルをWebアプリとして公開したいと考える場面が少なくありません。
しかし、通常のWebアプリケーションを開発には HTML・CSS・JavaScriptやWebフレームワークなどの知識が必要となり、データ分析が専門のエンジニアにとっては大きなハードルになります。

こうした課題を解決するために登場したのがStreamlitです。
この記事では、Streamlitの概要や特徴、導入方法から基本的な画面作成までを詳しく解説します。

Streamlitとは

ウェブアプリ開発ツール「Streamlit」の概要

Streamlitは、Pythonだけで手軽にWebアプリケーションを開発・公開することができるオープンソースのフレームワークです。
データサイエンティストや機械学習エンジニアが分析結果やAIモデルを簡単に共有できるツールとして開発され、2019年に正式にリリースされました。
データサイエンスやAI開発との親和性が非常に高く、近年ではデータ分析ツールや業務ダッシュボード、AIチャットアプリ、社内向け管理システムなど幅広い分野で利用されています。

従来、Pythonの分析プログラムをWebアプリとして公開するには、FlaskやDjangoなどのバックエンドに加えてHTML・CSS・JavaScriptによるフロントエンド実装が避けて通れませんでした。

Streamlitはここを丸ごとすっ飛ばします。Pythonスクリプト1本で、画面作成からデータ表示、ユーザー入力の受付までが完結してしまうのです。

Streamlitは、「Turn data scripts into shareable web apps in minutes(データスクリプトを数分で共有可能なWebアプリへ変換する)」というコンセプトを掲げており、そのコンセプト通りに、短時間で実用的なWebアプリケーションを構築できることが大きな特徴です。
Pythonファイルを実行するだけでローカルサーバーが立ち上がり、ブラウザ上でアプリケーションを利用できるため、複雑なWebサーバーの設定や画面設計を行わずに開発を始められます。

また、オープンソースとして継続的に開発が進められており、2022年にSnowflakeに買収されて以降、データクラウドとの連携やAI機能の強化も積極的に進められています。
そのため、単なるPython向けGUIツールではなく、データ活用基盤の一部としても利用できるフレームワークへと発展しています。

Streamlitの主な特徴

Streamlit最大の武器は「Pythonしか書かない」という潔さです。st.title()やst.button()を並べるだけで画面が組み上がっていく感覚は、フロントエンド未経験者ほどはずです。

特徴① 関数を呼び出すだけでUIが作れる

通常のWebアプリケーションでは、画面を作成するためにHTMLやCSS、JavaScriptを記述し、それに加えてPythonで作成したバックエンド処理を連携させる必要があります。
一方、Streamlitでは、st.title()やst.button()、st.text_input()などの関数を呼び出すだけで画面上にUIが生成されるため、Pythonを書くだけで短時間でアプリケーションを作成することができます。

特徴② 保存するだけで画面に反映されるホットリロード機能

その他にも、Streamlitには開発効率を高める機能が豊富に用意されています。
例えば、ソースコードを保存すると自動的にアプリケーションが再読み込みされるホットリロード機能により、コードを書き換えるたびに手動でサーバーを再起動する必要がありません。
変更内容をすぐブラウザ上で確認できるため、試行錯誤を繰り返しながらUIを調整しやすく、プロトタイプ開発にも適しています。

特徴③ グラフやデータの可視化がほぼワンライナーで完結

データ可視化まわりの充実ぶりも見逃せません。DataFrameをそのまま流し込むだけでテーブルが描画され、グラフ化もほぼワンライナーで完結します。
折れ線グラフや棒グラフを表示したりなど、分析したデータを可視化する際にも、対応する関数を呼び出すだけで簡単に描画できます。
さらに、MatplotlibやPlotly、Altairなどの代表的な可視化ライブラリとも簡単に連携できるため、高度な分析ダッシュボードも構築可能です。

特徴④ 多彩なウィジェットとシンプルな状態管理

Streamlitでは、スライダーやセレクトボックス、ファイルアップロードなど、多数のウィジェットが標準で提供されています。
Streamlitが独自に採用しているデータフローにより、ユーザーがボタンや入力フォームなどを操作するたびにアプリ全体が自動的に再実行されるため、アプリケーションの状態管理がシンプルであり、一般的なGUIプログラミングよりも少ないコード量で実装できます。

特徴⑤ 生成AIアプリケーションにも対応

さらに、近年は生成AIアプリケーション向けの機能も充実しており、チャットインターフェースやストリーミング表示なども容易に実装できる機能が揃っています。
そのため、データ分析だけでなくAIアプリケーションのフロントエンドとして採用されるケースも増えています。

データ分析や機械学習との相性の良さ

Streamlitはデータサイエンス向けに設計されているため、Pythonの代表的な分析ライブラリと非常に相性が良い点も特徴です。
例えば、以下のようなライブラリで集計や加工などを行なったデータを、Streamlitを使用して表やグラフに変換したり、ダッシュボードを作成するといった使い方ができます。

  • Pandas
  • NumPy
  • Scikit-learn
  • TensorFlow
  • PyTorch

近年は生成AIアプリケーションとの組み合わせも増えており、LLMやRAGを使ったチャットアプリのUIとして採用される場面も増えています。実際、社内向けの検証段階のRAGツールなどでは「とりあえずStreamlitで動くものを見せる」という使い方がかなり定番になっています。

なぜ多くのエンジニアに選ばれているのか

Streamlitが人気を集める主な理由は、「開発速度」と「学習コストの低さ」のバランスにあります。

従来であればFlaskやDjangoとJavaScriptフレームワークを組み合わせる必要があったようなアプリでも、StreamlitならPythonのみで短期間にプロトタイプを作成することができます。
実際に、公式サイトでも 「数分でデータアプリを構築・共有できる」 「Pythonだけで完結する」 点が売りであるとされており、Fortune 50企業の90%以上で利用されている実績も公開されています。

特に、以下のような用途では非常に高い生産性を発揮します。

  • 社内ダッシュボード
  • データ分析ツール
  • AIモデルのデモ
  • PoC(概念実証)
  • 業務改善ツール
  • レポート閲覧システム

Streamlitと、同じくPython製のWebフレームワークであるFlask・Djangoを比較すると、以下のような違いがあります。

比較項目 Streamlit Flask Django
必要な知識 Pythonの基礎知識のみ Python+HTML・CSS・JavaScriptの基礎 Python+HTML・CSS・JavaScript、MVCなどの設計知識
学習コスト 低い(数十行で動くアプリが作れる) 中程度(ルーティングやテンプレートの理解が必要) やや高い(フレームワークの規約や仕組みの理解が必要)
開発速度 非常に速い(プロトタイプに最適) 中程度(自由度が高い分、実装量も増える) 標準機能が多く中規模開発は速いが、習得には時間がかかる
UIの自由度 低い(用意されたウィジェット中心) 高い(HTML・CSS・JSを自由に記述可能) 高い(テンプレートエンジンで柔軟に構築可能)
状態管理 Session Stateによる独自の自動管理 自前で実装(Cookie・セッション管理など) 標準機能が充実(セッション・認証などが組み込み済み)
向いている用途 データ分析ツール、AIデモ、社内ダッシュボード 小〜中規模のAPI・Webサービス 中〜大規模なWebサービス、業務システム
デプロイ Streamlit Community Cloudで簡単に公開可能 各種クラウド・サーバーへ個別に構築が必要 各種クラウド・サーバーへ個別に構築が必要(大規模運用向け機能が豊富)

一方で、大規模なECサイトやSNSのような複雑なWebサービスを実装する場合には、専用のWebフレームワークの方が適しているケースもあるため、用途に応じた使い分けが重要です。

Streamlitを採用するメリット・デメリット

Streamlitを導入するメリット

Streamlitを採用する主なメリットとしては、以下の点が挙げられます。

  • Pythonだけで開発できる
  • HTML・CSS・JavaScriptの知識がほとんど不要
  • 学習コストが低い
  • データ分析ライブラリとの親和性が高い
  • グラフ表示が容易
  • UI部品が豊富
  • 開発サイクルが速い
  • Community Cloudなどを利用して簡単に共有・公開できる

既にPythonの知識や環境を持っている人であれば、新たな技術を習得する必要がほとんどなく、即座にアプリケーション開発を行うことができます。
複雑なサーバー設定も必要なく、標準搭載の関数と独自採用のデータフロー機能によって、UI表示や各イベントの処理なども数行のコードを書くだけで実装できるため、初心者の方でも気軽に始めやすいのが大きな利点の1つです。

また、その他のPythonライブラリやコンポーネントを組み合わせて活用することで、高度な分析やダッシュボートの作成も可能としています。
データ分析だけでなく、AIアプリケーションのフロントエンド開発に必要なUIなどが揃えられているのも特徴です。

Streamlitは基本的に無料で利用できますが、企業でのデータ連携を前提とした有料の選択肢も用意されています。

プラン 料金 内容
Community Cloud 無料 パブリックなGitHubリポジトリからアプリを公開可能。基本的なCPU・メモリの範囲で利用でき、個人開発や検証用途に向く
Streamlit in Snowflake 有料(Snowflakeの利用料に準ずる) Snowflake環境内でアプリを構築・公開。プライベートなデータ連携や、企業向けのセキュリティ・権限管理に対応

Streamlitを利用する際のデメリットと注意点

一方で、以下の注意点も存在します。

  • 細かなUIデザインの自由度はReactなどより低い
  • 大規模Webサービス向けではない
  • スクリプト全体が再実行される仕組みを理解する必要がある
  • 重い処理ではキャッシュや状態管理(Session State)の設計が重要

Streamlitでは豊富なUIが標準で用意されていますが、デザインなどにはある程度の制限がかかるため、自由度では他のフレームワークに劣る場合があります。


また、ボタンを押す、入力する、ページを開くなどのイベントが発生するたびに、ファイル全体が先頭から再実行される仕組みのため、importの数やプログラムの量が多い場合に画面の動作が遅くなるケースがあります。

普段パフォーマンス改善を専門にしている立場から見ても、「毎回全体を再実行する」仕様は初見だと見落としがちな落とし穴です。

データ量が増えるほどst.cache_dataなどのキャッシュ設計を後回しにできない点は、実案件に導入する前に押さえておきたいポイントだと感じます。

そのため、大量のデータを扱う場合は、キャッシュ機能を活用して不要な再計算を避けることが重要です。

Streamlitの導入手順

Streamlitのインストール手順

Streamlitのインストールは、以下のコマンドで実行できます。

pip install streamlit

OSやPython環境ごとの詳しい手順は、公式インストールガイドも参考にしてください。

Pythonライブラリをインストールする際は、仮想環境を作成した上で行うことが推奨されています。
仮想環境の構築とアクティべートは以下のコマンドで実行できます。

Python
# 仮想環境の構築
python -m venv [仮想環境名]

# アクティべート (macOS / Linux)
source [仮想環境名]/bin/activate

# アクティべート (Windows)
[仮想環境名]\Scripts\activate

インストール完了後は、以下のコマンドでサンプルアプリを起動できます。

Python
streamlit hello

実行すると、以下のような画面がブラウザで表示されます。

起動画面

基本的な起動方法と画面の確認

インストールが無事に完了したら、スクリプトファイルを作成して実装していきましょう。
Streamlitを使用する際は、以下のコードを記述してライブラリをインポートする必要があります。

import streamlit as st

ファイルの作成と記述が完了したら、以下のコマンドを実行することでブラウザ表示できます。

streamlit run [ファイル名]

コマンドを実行すると、自動でローカルサーバーが起動してアプリがブラウザ表示されます。
コード内容を変更した場合、保存時に自動で変更が検知されるため、コマンドを実行し直す必要はありません。

ただし、初期設定時ではブラウザ側でリロードを行う必要があるため、変更内容を自動で反映させる場合は設定を変更する必要があります。
画面右上の3点マークをクリックし、「Auto rerun」 を有効にすると、ソースコードを変更するたびにアプリが自動的に更新されます

設定画面

試しに、以下のサンプルコードをブラウザ表示してみましょう。

import streamlit as st

st.title("Hello Streamlit")

上記を作成してコマンド実行すると、以下のようにタイトルが記載された画面が自動で表示されます。

タイトル画面

このように、基本的には 「対象のアプリのファイルをコマンドで実行」 → 「ブラウザを確認しながら編集」 といった流れになります。

Streamlitを使った基本的な画面構築の流れ

主要なパーツの配置方法(テキスト・ボタン・入力フォーム)

Streamlitには数多くのUIパーツが用意されていますが、ここでは基本的なパーツを抜粋して紹介します。
以下のサンプルは、簡単な入力フォームとボタン実装の例です。

import streamlit as st

# タイトル
st.title("Hello Streamlit!")

# 入力フォーム
name = st.text_input("あなたの名前を教えてください")

# ボタン
if st.button("Done"):
	# テキスト表示
	st.write(name, "さん、ようこそ!")

【実行結果】

フォーム作成

このように、非常にシンプルなコードでUIを実装することができます。
詳しい使い方やその他のパーツについては、公式ドキュメントを参考にしてください。

グラフやデータのビジュアル化とダッシュボード作成

Streamlitでは、DataFrameをそのまま表形式で表示できるほか、st.line_chartやst.bar_chartなどのAPIを利用してグラフを簡単に描画できます。
以下は、簡単なサンプルです。

import streamlit as st
import pandas as pd

df = pd.DataFrame({
    '名前': ['Alice', 'Bob', 'Charlie'],
    '点数': [75, 90, 58]
})

# テーブル描画
st.table(df)

df.set_index('名前', inplace=True)

# 折れ線グラフ描画
st.line_chart(df)

【実行結果】

グラフ作成

このように、表やグラフの作成もシンプルなコードで実行でき、分析ダッシュボードを少ないコード量で構築できます

まとめ

Streamlitは、HTMLやJavaScriptの知識がなくても、データ分析や機械学習の成果を誰でも利用しやすいWebアプリとして公開できる点が大きな魅力です。
豊富なUI部品やグラフ表示機能、分析ライブラリとの高い親和性により、ダッシュボードやAIデモ、社内ツールなどを短期間で開発できます

一方で、大規模なWebサービスには向かない場面もあるため、用途に応じた選択が重要です。

「とりあえず動くものを見せたい」「本格開発の前に反応を見たい」といった場面では、Streamlitは他に代えがたい存在です!

     

Otherカテゴリの最新記事