Python

【Django vs Flask】PythonでWebアプリ作るなら?【結論 : 目的次第】

Django vs Flask
PythonでWebアプリを作ろうとしている人
PythonでWebアプリを作ろうとしている人
PythonでWebアプリケーションを作成するときって、DjangoとFlaskどちらが良いんだろう…。

これから勉強するのに、どちらを選べば良いか迷うな…。

この記事では、上記のような悩みを解決していきます。

 

この記事の想定読者

  • Pythonを勉強していて、Webアプリが作りたい人
  • DjangoとFlaskは、どちらが良いのか分からない人
  • これから勉強するので、最適なものを選びたい人

想定している読者は、上記のとおりです。

 

この記事では、「PythonのWebフレームワークは、DjangoとFlaskのどちらが良いのか」について書いていきます。

 

RubyならRails、PHPならLaravelと、割と勉強した方が良いフレームワークが決まっているのに、Pythonはどちらが良いのかイマイチ分かりづらいですよね。

 

この記事を読み終えれば、DjangoとFlaskの違いが分かり、どちらを勉強するべきか分かるようになります。

 

【Django vs Flask】PythonでWebアプリ作るなら?【結論 : 目的次第】

 

PythonでWebアプリケーションを作るとき、DjangoとFlaskのどちらが良いのか論争ですが、ぶっちゃけ「目的次第」です。

 

Djangoは中〜大規模向け

 

Djangoは、フルスタックなWebフレームワークと言われており、その名の通りで必要な機能はすべて揃っています。

つまり、Djangoだけ導入すればWebアプリが作成できます。Rubyで言うとRailsのポジションですね。

 

なので、Djangoは中〜大規模の開発に向いています。

 

Djangoを採用している企業

  • Instagram
  • 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 選ばれる理由

外部ページ >> Flask – Reviews, Pros & Cons | Companies using Flask

 

さらに、自分でカスタマイズする分、Djangoより細かい設定が可能になります。

 

Flaskを導入している企業

  • Netflix
  • Reddit
  • 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

indeed django

 

Flask

indeed flask

 

  • Django : 354件
  • Flask : 183件

上記のような結果になり、Djangoの方が2倍くらいの求人がありました。

 

正社員の求人では、Djangoの方が求められているようですね。

 

レバテックフリーランス

 

続いてフリーランス市場を見るために、レバテックフリーランスの案件で比較してみます。

 

Django

レバテックフリーランス django

 

 

Flask

レバテックフリーランス flask

 

  • Django : 55件
  • Flask : 18件

上記のような結果になり、Djangoの方が3倍くらいの求人がありました。

フリーランス市場も、正社員と同様にDjangoの案件が多いですね。 

 

補足 : Googleの検索結果

 

補足的な内容ですが、Googleで検索して見るとFlaskの方が検索件数が多かったりします。

 

Django

google django

 

Flask

google 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の勉強でおすすめの教材

python3 × Django2

教材ページ >> 【Python 3 x Django 2.0】作りながら覚えるDjango

日本語かつ動画で解説されている動画は、これくらいかなと。

 

僕も実際に購入しましたが、かなり分かりやすかったです。

この動画で学んだことを活かしつつオリジナルでアプリが作れると、結構レベル上がりますね。

 

というわけで、「Django vs Flask」については、ここら辺にします。

 

再度ですが、どちらが良いとか優劣はなくて、目的に応じて使い分けをするだけです。

特に理由がなければ、Djangoを勉強してみましょう。

 

勉強しても無駄になりません。必ず自分の糧になってくれますよ。

 

おすすめの記事