これから勉強するのに、どちらを選べば良いか迷うな…。
この記事では、上記のような悩みを解決していきます。
この記事の想定読者
- Pythonを勉強していて、Webアプリが作りたい人
- DjangoとFlaskは、どちらが良いのか分からない人
- これから勉強するので、最適なものを選びたい人
想定している読者は、上記のとおりです。
この記事では、「PythonのWebフレームワークは、DjangoとFlaskのどちらが良いのか」について書いていきます。
RubyならRails、PHPならLaravelと、割と勉強した方が良いフレームワークが決まっているのに、Pythonはどちらが良いのかイマイチ分かりづらいですよね。
この記事を読み終えれば、DjangoとFlaskの違いが分かり、どちらを勉強するべきか分かるようになります。
Contents
【Django vs Flask】PythonでWebアプリ作るなら?【結論 : 目的次第】
PythonでWebアプリケーションを作るとき、DjangoとFlaskのどちらが良いのか論争ですが、ぶっちゃけ「目的次第」です。
Djangoは中〜大規模向け
Djangoは、フルスタックなWebフレームワークと言われており、その名の通りで必要な機能はすべて揃っています。
つまり、Djangoだけ導入すればWebアプリが作成できます。Rubyで言うとRailsのポジションですね。
なので、Djangoは中〜大規模の開発に向いています。
Djangoを採用している企業
- bitbucket
- Mozilla
上記のような企業がDjangoを利用しています。Instagramなどの有名企業で使われていますね。
Instagramを使ったことがある方なら分かるかと思いますが、ユーザーがログインする機能がありますよね。
あれがDjangoだと、デフォルトで入っています。
Flaskだと、「Flask-login」と言う拡張機能を、別途でインストールする必要ありです。
Django1つあればアプリケーションが作成できるので、かなりラクに開発を進められますね。
少し悲報 : Djangoは若干学習コストが高いです
Djangoは少し学習コストが高いです。
そもそも「Webアプリがどうやって動いているのか」が分からないと、理解に苦しむかと思います。
- Webサーバー
- APサーバー
- データベース(サーバー)
- MTVモデル
ここら辺をサクッと勉強してから、Djangoの学習に進んだ方が良いかと思います。
Flaskは小〜中規模向け
一方でFlaskは、マイクロWebフレームワークと呼ばれており、必要な機能を最小限に構成されています。
なので、他の機能が欲しい場合には別途インストールする必要があります。
Djangoの場合だと、使わない機能も最初から入っていましたが、Flaskだと自分で導入する必要があります。
これを聞くと「Djangoを使えばFlaskは必要ないのでは…?」と思われるかもしれませんが、Flaskは必要な機能しか導入しないため、動作が非常に軽いです。
実際に、Flaskが選ばれている理由でトップなのも、「軽量だから」ですね。

Flask – Reviews, Pros & Cons | Companies using Flask
外部ページ >>
さらに、自分でカスタマイズする分、Djangoより細かい設定が可能になります。
Flaskを導入している企業
- Netflix
- Zillow
上記のとおりで、Netflixなどの有名企業で導入しています。
さらに、Djangoより学習コストが低いのもFlaskのメリットになります。
【Django vs Flask】Webアプリの作成なら目的次第で決めよう
というわけで、DjangoとFlaskには優劣がなく、目的に応じて使い分ければ良いというのが結論です。
DjangoとFlaskの使い分け
- Django向け : 大〜中規模の開発、カスタマイズしない
- Flask向け : 小〜中規模の開発、細かいカスタマイズもしたい
上記のように使い分けてあげれば良いですね。
【Django vs Flask】案件数で「需要」を確認する
DjangoとFlaskの機能面に優劣はありませんが、勉強するからには需要の高いフレームワークを選びたいですよね。
僕の方で、世の中の需要的なものを調査いたしましたm(_ _)m
indeed
indeedでは、FlaskよりDjangoの求人が多かったです。
Django

Flask

- Django : 354件
- Flask : 183件
上記のような結果になり、Djangoの方が2倍くらいの求人がありました。
正社員の求人では、Djangoの方が求められているようですね。
レバテックフリーランス
続いてフリーランス市場を見るために、レバテックフリーランスの案件で比較してみます。
Django

Flask

- Django : 55件
- Flask : 18件
上記のような結果になり、Djangoの方が3倍くらいの求人がありました。
フリーランス市場も、正社員と同様にDjangoの案件が多いですね。
補足 : Googleの検索結果
補足的な内容ですが、Googleで検索して見るとFlaskの方が検索件数が多かったりします。
Django

Flask

- Django : 5700万件
- Flask : 2億4000万件
上記のような感じで、Flaskの方が4倍ほど検索結果が多いです。
おそらく理由は「カスタマイズ性が高いから」でして、海外だとミニマルでカスタマイズ性の高いFlaskが好まれるのかなと思います。
Djangoで出来ることは、「Flask + Flaskの拡張機能」で実現できますし、海外みたいに開発速度がはやいのであれば、Flaskで支障ないですよね。
ただ、Flaskは日本語情報が少ないですね…。これもDjangoの案件数が多い理由なのかなと思います。
【Django vs Flask】これから勉強するなら、Djangoを始めよう
というわけで、ここまでDjangoとFlaskについて色々な観点から見てきましたが、これから勉強するならDjangoが良いのかなと思います。
理由は、下記のとおり。
- 日本語情報がFlaskより多い
- 日本企業で取り扱われている数がFlaskより多い
上記のとおりで、日本人に優しいのはDjangoです。
個人的にはFlaskの方が「好みでカンタン」ですが、まあ案件で使えないと意味ないので、Djangoが良いと思います。
Djangoの勉強でおすすめの教材

【Python 3 x Django 2.0】作りながら覚えるDjango
教材ページ >>日本語かつ動画で解説されている動画は、これくらいかなと。
僕も実際に購入しましたが、かなり分かりやすかったです。
この動画で学んだことを活かしつつオリジナルでアプリが作れると、結構レベル上がりますね。
というわけで、「Django vs Flask」については、ここら辺にします。
再度ですが、どちらが良いとか優劣はなくて、目的に応じて使い分けをするだけです。
特に理由がなければ、Djangoを勉強してみましょう。
勉強しても無駄になりません。必ず自分の糧になってくれますよ。
おすすめの記事