でもどうやって作れば良いんだろう……
この記事を読んでいる方は、PythonでWebアプリケーションをできるだけ簡単に作りたいと考えていると思います。
Pythonは今でこそ機械学習用途で有名ですが、実は有名なWebアプリケーションや、制作を簡単にしてくれるWebフレームワークがたくさんあります。これらを使いこなすことで、簡単にWebアプリケーションの雛形が作れますよ!
こんにちは!侍エンジニアライターのフクロウです!機械学習のインストラクターをしています。
この記事では、PythonのWebアプリを知りたい、学習して自分でも簡単に作ってみたいという方向けに、PythonのWebアプリケーション例やPythonで使えるWebフレームワークを紹介します。
大規模なWebアプリケーションではなく、シンプルなWebアプリケーションを作るのにおすすめのWebフレームワークを紹介しますよ!
この記事はこんな人のために書きました:
- Pythonで製作されたWebアプリを知りたい方
- Pythonを使ったWebアプリ開発に挑戦したい方
- できるだけ簡単にWebアプリ開発ができるフレームワークを知りたい方
なお、Pythonの記事については、こちらにまとめています。
この記事の目次
そもそもWebアプリケーションってなに?
まず最初にWebアプリケーションについて簡単に解説します。Webアプリケーションはインターネットのネットワーク上で、使用することができるソフトウェアを指します。
例としてはウェブメールサービスの「Gmail」、インターネット電話サービスの「Skype」などが挙げられます。Webアプリケーションの場合、本体のプログラムはWebサーバー内に存在します。
一方でPC本体にプログラムをインストールして使用するソフトウェアのことを、「ネイティブアプリケーション」と言います。

Pythonとは?
Pythonは近年主流となってきている、人工知能開発や機械学習によるデータ解析分野などで使用されているプログラミング言語です。
Webアプリケーションを制作するプログラミング言語にはPHPやRubyがメインの場合が多いため、Pythonに関してはWebアプリケーション開発に使用されるイメージはそこまでありません。
ここではPythonの基礎及び、Webアプリケーション開発に使用される理由について解説します。
なおPythonの基礎的な知識については、次の記事でも詳しく解説しています。合わせて参考にしてください。
Pythonの基本概要
PythonはC言語やJavaなどと同じくプログラミング言語の一種です。そしてプログラミング言語のなかでも学習、習得が簡単であると言われており、コードの書きやすさ読みやすさに重点を置かれて作られました。したがって、
- 少ないコードで簡潔に書ける
- 専門的なライブラリが豊富
というのが特徴です。
比較的簡単に身に付けることができ、数値計算などにも適していることから、人工知能開発や機械学習によるデータ解析分野などに用いられます。
PythonでWebアプリケーションを開発できるの?
これまでWebアプリケーションの開発にはRubyやPHPを使用するのが主流でした。特に日本の企業ではRubyが多く使用されています。
ではWebアプリケーション開発にわざわざPythonを使う必要はないのではと思うかもしれません。
実はWebアプリケーション開発にPythonを使う以下のメリットがあります。
- ライブラリが豊富である
- 効率的な開発
- メンテナンス性のよさ
特に数値計算に使用するライブラリが豊富にあるので、画像や音声認識などを組み込んだWebアプリケーション開発に強い効果を発揮します。
また少ないコードで簡潔に書けるので開発が簡単にできます。そして簡単に開発できるということはメンテナンスも簡単にできるということになります。
開発にはフレームワーク使用がおすすめ
そもそもWebフレームワークとは、Webアプリケーションを作るために必要な機能(クラスや関数)をまとめたライブラリのことです。
このフレームワークを使用することでWebアプリケーション開発に掛かる労力を削減することができるため、開発の強い味方です。またフレームワークを使用した開発では、誰がコードを書いても同じような記述になるため、複数人で1つのWebアプリケーションを開発するときは、その作業性が上がります。
Pythonには機械学習やゲームを始めとして、様々なアプリケーションを作るためのライブラリがあります。これから紹介するWebアプリケーションと組み合わせることで、Pythonで作ったアプリケーションを簡単にWebアプリケーションとして公開することができます!
他の言語のWebフレームワークではなく、あえてPythonのWebフレームワークを使うことの一番の利点がコレです!Python製の様々なプログラムと簡単に連携することができるので、サーバー側で使うプログラムの殆どをPythonで完結することができてしまいます!

PythonでおすすめのWebフレームワーク3選!
PythonにはたくさんのWebフレームワークがありますが、その中でも特に有名で、便利なものを3つ紹介します!
Django
インストール方法
pip install Django
DjangoはPythonのWebフレームワークの中で、一番豊富な機能を持ったライブラリです。
Djangoを例えるならば、Ruby on Rails(RoR)のような全部入りのWebフレームワークに近いです。Djangoは本当にたくさんの機能があるので、習得するのは以下の2つよりも大変だと思います。
ですがDjangoを使いこなせれば、一通りWeb開発で必要な機能を使うことができるでしょう!
Flask
インストール方法
pip install flask
Flaskはマイクロフレームワークを自称するWebフレームワークです。Djangoと比べてシンプルで使いやすいライブラリです。
日本語訳されたユーザーガイドがあり(https://a2c.bitbucket.io/flask/)、学習も比較的容易です。
これはFlaskに限った話ではないですが、機械学習を使ったアプリケーション(手書き文字認識など)を作るとき、REST APIのいう仕組みを使うことで、シンプルなWebアプリ実装が可能です。
Flaskではこれを簡単に実装することができるので、手元で学習を行った機械学習モデルを使ってWebアプリを作りたいときなどにオススメです!
Bottle
インストール方法
pip install bottle
Bottleは非常にシンプルなマイクロWebフレームワークです。なんとソースコードが一つのファイルにまとめられていて、Pythonの標準ライブラリ以外に依存していません。
Bottleの利点はなんといってもこのシンプルさです。Githubへのリンクからbottle.pyのソースコードを確認できます。
小規模なアプリケーション作成には適任ですが、今はGithubスターの数から見てもFlaskの方が人気のようです。ちゃんとしたものを作るときはFlaskを使った方が情報が多くて嬉しいかもしれません。
フレームワークはDjangoがおすすめ
上記で3つのフレームワークについて紹介してきましたが、もしこれからPythonフレームワークの学習を考えているなら、その中でも特におすすめなのが「Django」になります。
数あるPythonのフレームワークの中で、なぜDjangoがおすすめなのか、その理由と使い方について解説します。
なぜDjangoなの?
複数あるPythonのフレームワークで、Djangoをおすすめなのか、その理由の1つはGoogleTrendsで1位を獲得しているという点です。2005年より人気はどんどん上昇していき、現在まで1位の座を守り続けています。
また国内の大手IT向け転職サイトのGreenでDjangoの求人数を検索すると199求人(2020年6月29日時点)あり、これは2番目に人気であるFlask求人の約2.5倍にあたります。企業でもDjangoを使用できるITエンジニアを求めていることが分かります。
2つ目は開発に必要となる有用な機能が数多く備わっていることです。例えば、
- データベース入力フォーム
- ユーザー認証機能
などです。特にユーザー認証機能はセキュリティの高いWebアプリケーションを容易に作成することができます。
このようにDjangoは他のフレームワークにはないさまざまな機能を備えており、非常に使い勝手が良いです。
Djangoの使い方
ここでは簡単に説明するため、Djangoを使用しての「Hello World」の表示の仕方について説明します。
まずコマンド操作でhelloアプリケーションを作成します。
$ cd myapp
$ python manage.py startapp hello
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello Django')
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('hello/', include('hello.urls')),
path('admin/', admin.site.urls),
]
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
INSTALLED_APPS = [
'hello.apps.HelloConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
最初は「Hello World」を表示するのに、こんなにも手順を踏んだり、コードを書くの?と思うかもしれません。確かに数行程度の文字ならフレームワークを使う必要はありませんが、
- ユーザー認証機能
- 数値計算機能
- 画像認識機能
などを追加していくとPythonで1からコードを書くより、Djangoを使用した方が絶対楽だし、Webアプリケーション作成が面白いと感じますので、ぜひ1度Djangoを使ってみてください。
Djangoを勉強するには
どのプログラミングの学習でも最初の入口として、「Hello World」を表示するというが最初の関門です。しかし、これだけではプログラミングスキルを習得したとは言えません。Djangoの場合もそうです。
侍ではDjangoの基本的な使い方から、学習におすすめの本を紹介しているサイトがあります。ぜひ参考にして頂き、自身の手でオリジナルWebアプリケーションを作成してみてください。
【Django入門】templateとHTMLを使ってWebページを表示しようDjango学習本おすすめ6選【入門者〜上級者までレベル別に紹介】
Pythonで開発されたWebアプリケーション例
これまではPythonでのWebアプリケーション開発の基本やおすすめフレームワークについて紹介してきました。これまでの解説から、
と、疑問に思う読者もいらっしゃると思います。
ここではPythonを用いて開発されたWebアプリケーションについて4つ紹介します。
写真共有サイトとして有名で人気の高いInstagramはフレームワークであるDjangoを使用し、Pythonによって構築されています。
もともとInstagramは、プログラミング開発経験のない共同経営者の2人によって開発されたそうです。最初は対応できていたのですが、ユーザーの膨れ上がりにより、開発が容易なPythonを用いるようになった経緯があるそうです。
YouTube
2005年に設立されたYouTubeは、動画共有サイトとして世界で最も有名です。日本でも人気があり、現在ではユーチューバーなる人たちも現れ、広告掲載による収入源にもなっているほどです。
PythonはYouTubeのサーバーサイドの処理に使用されているそうです。
Spotify
世界中の楽曲やアーティスト、アルバムに無料でアクセスできるストリーミングサービスがSpotifyです。お気に入りの楽曲を集めて自身オリジナルのプレイリストを作成したり、シェアすることができます。
楽曲のデータ解析などにPythonの数値解析ライブラリが使用されているようです。
Dropbox
Dropboxはオンラインストレージサービスとして世界中で良く知られています。どのような環境であってもアクセスして、同様の速度で動作する必要があるため、コード量が少なくかつ処理速度は速くないといけません。
少ないコード量で開発できるPythonは、Dropboxに最適だと言えます。
Python以外にWebアプリケーション開発に必要な言語とは
Webアプリケーション開発に使用されている言語はPythonだけではありません。例えば使用者が手軽に使えるようユーザーインターフェースを整えるためにはフロントエンド言語の習得が必要となってきます。
ここではPythonとともにWebアプリケーションの構築を支えるマークアップ言語について解説します。
HTML
HTMLはWebアプリケーションのユーザーインターフェースに関する骨格を作成するマークアップ言語です。Webアプリケーションで文字を読めたり、画像を見たりできるのも、この言語のおかげです。
HTMLの基本や詳細な役割については以下のサイトを参照してください。
HTMLとは?初心者でも分かる基礎知識から書き方まで詳しく解説
CSS
先程のHTMLがWebアプリケーションのユーザーインターフェースに関する骨格なら、CSSは見た目を整えるデザイン部分になります。文字の大きさ、色、配置などはこのCSSによって作られます。
ユーザーが使いやすいデザインとするには、HTMLとCSSのどちらも必要となります。詳しくは以下のURL先をご覧ください。
CSSの基礎徹底解説|初心者が絶対覚えておきたい3つのポイント
JavaScript
近年は画像や文字が動いたり、出現したりする動的なWebアプリケーションが主流となっています。このようにアプリケーションに動きをつけるのがJavaScriptになります。
JavaScriptを習得すれば、リッチなWebアプリケーションを開発するのも可能になります。詳しくは以下のURL先をご覧ください。
【超初心者必見】JavaScript入門攻略ガイド【基礎学習/アプリ開発/仕事獲得】

まとめ
この記事では、Pythonを使ったWebアプリケーション作成のために、Pythonで使えるWebフレームワークについて紹介しました。
- Django
- Flask
- Bottle
DjangoはWebアプリケーション作成の基本を学ぶにはもってこいの教材です。
なお、現在Pythonを勉強中の方は以下の記事もどうぞ。Pythonでできることと、その勉強法を中心にわかりやすくまとめました。
【Python入門完全攻略ガイド】