今回はこんな疑問にお答えしていきます。
エンジニアにとってWebサービスの開発に欠かせないのが「Webフレームワーク」です。
Webフレームワークさえあれば、Webサービス開発に必要な機能・枠組みが最初から揃っているので、開発効率が格段に高まります。
【先に結論】DjangoとFlaskの比較表
Django | Flask | |
ロゴ画像 | ||
使用言語 | Python | Python |
作れるもの | AI機能があるWebシステム | Webシステム全般 |
使用例 | YouTube、Instagram | 小規模サイト |
設計思想 | 人によるコードの書き方の差異が少なくなるように設計 (大規模開発向け) | 自由度が高く カスタマイズしやすい (小規模開発向け) |
汎用性 | 高い AIなどWeb以外の用途がある | 普通 AIは使われない |
年収 | 多い | 普通 |
求人数 | 多い | 少ない |
難易度・学習コスト | 難しい | 簡単 |
将来性 | 高い | 低い |
おすすめの参考書・入門書 | 実践Django Pythonによる本格Webアプリケーション開発 Python Django3超入門 Djangoのツボとコツがゼッタイにわかる本[第2版] | Python FlaskによるWebアプリ開発入門 Flaskで学ぶWebアプリケーションのしくみとつくり方 Flask Web Development |
学習方法 | Djangoを学べるスクールまとめ | Flaskを学べるスクールまとめ |
DjangoやFlaskをプロのエンジニアから教わりたい方にはプログラミングスクールがオススメです。詳しくは以下の記事をご覧ください。
目次
Djangoとは
まずはDjangoの特徴からご紹介します。
Djangoとは
Django(「ジャンゴ」と発音します。中には「ディージャンゴ」と発音する人もいます)とは、
「PythonでWebシステムを開発するためのフレームワーク」です。
「Webシステムを開発するためのフレームワーク」は、Webシステムを開発する際に使う「枠組み」ですね。
Djangoは以下のようなWebシステムに必要な機能をすべて搭載しています。
- データベースとのやりとり
- 画面描画の仕組み
- 入力値の受け取りや入力値が正しいのかのチェック(このチェックのことを「バリデーション」と言います)
- アクセスされたURLに基づいてそのシステムのどこを呼び出すかを決める機能
ゼロからWebシステムを作るより、はるかに効率よく開発できます。
Pythonが学べるプログラミングスクールおすすめ9選【社会人必見!】
更新日:2024年11月9日
Djangoで作れるもの
Webシステムとしての基本機能はDjangoに備わっているので、Webシステムであればなんでも開発できます。
- ECシステム
- ニュースサイト
- AIエンジンを積んだシステム(AIというところがPythonぽいです)
など、作れないWebシステムはありません。
少し高度なトピックですが、Djangoの派生として、DRF(Django REST Framework)というものもあります。
DRFがAPIを提供し、ブラウザの中で動くフロントエンド(Vue.jsなどが使われます)がDRFとAPIを介して通信して画面に関する処理をおこなう、という仕組みです。
Djangoで作られたサイト
続いてはDjangoで作られたサイトをいくつかご紹介します。
YouTube
YouTubeはDjangoで作られています!
YouTubeの動画の本数は本当に膨大なので、いったいどんなデータベースを使っているんだろうと気になりますね。
動画を検索するときもサクサク動くので、そこら辺りの処理も高度そうです。
インスタもDjangoです、と言ったら驚きますかね?
スマホアプリのイメージが強いインスタですが、インスタのスマホアプリのサーバー側の処理はDjangoで書かれています。
個人的にはインスタの一番の特徴は搭載されているAIの優秀さだと思うのですが(おすすめの投稿のセレクションが秀逸)、AIに強いDjangoを使っていると聞けば、納得できるのではないでしょうか?
おすすめDjangoが学べるプログラミングスクール6選をご紹介
Flaskとは
続いてはFlaskの特徴をご紹介します。
Flaskとは
さて、Flask(「フラスク」と発音します)もまた、Djangoと同じく、「PythonでWebシステムを開発するためのフレームワーク」です。
ではDjangoと何が違うのか?
一言で言えば、最大の違いは「開発の難易度」です。
Flaskはそれほど緻密な構造を持っていません。
Python自体、他の言語より開発効率が高いとされていますから、Flaskを使えば非常に効率よくWebシステムが開発できます。
その代わり、大規模で複雑な構造を持つWebシステムの開発には向いていません。
そういったWebシステムには、より緻密な構造を持つDjangoが使われます。
Flaskで作れるもの
FlaskもWebシステムとしての基本機能は備えていますので、小規模なWebシステムであればなんでも開発できてしまいます。
- 個人商店のECサイト
- 個人のブログ
- 中小企業の勤怠管理システム
など、低予算でWebシステムを開発したい時にFlaskが使われます。
Flaskで作られたサイト
実は、Flaskは個人商店などでの利用が多いことなどにより、大企業では使われない傾向にあります。
なので、誰もが知っているサービスの例をここに挙げることはできません。
しかし、もしかしたらあなたがよく行く店のECサイトはFlaskで開発されているかもしれません。
非エンジニアでもPythonとFlaskを勉強して自力でECサイトを立ち上げてみる、という例もあるようです。
おすすめFlaskが学べるプログラミングスクールをご紹介【2024年最新】
DjangoとFlaskを徹底比較
続いてはDjangoとFlaskを様々な角度から徹底比較していきます。
Django | Flask | |
設計思想 | 人によるコードの書き方の差異が少なくなるように設計 (大規模開発向け) | 自由度が高く カスタマイズしやすい (小規模開発向け) |
汎用性 | 高い AIなどWeb以外の用途がある | 普通 AIは使われない |
年収 | 多い | 普通 |
求人数 | 多い | 少ない |
難易度・学習コスト | 難しい | 簡単 |
将来性 | 高い | 低い |
それでは順番に詳しく解説していきます。
1. 設計思想で比較
前述の通り、Djangoは緻密で、Flaskはラフなところがあります。
ここでの「緻密」の意味を詳しくご説明すると以下の様になります。
- 各機能を記述するファイルの置き場所、各機能の呼び出し方などが厳密に決まっている
- 画面とのやりとりの仕方も決まっていて、そこをカスタマイズするのにはひと手間かけないといけない
- したがって学習の難易度は高い
- しかし人によるコードの差が出にくいのでチーム開発に向いている
逆に「ラフ」というのはこの反対です。
2. 汎用性で比較
Webシステムとしての汎用性は、どちらも同格です。
ただ、前述したDRF(Django REST Framework)の存在から、Djangoは「バックエンド」の専門処理機構として、様々なフロントエンドの技術と同居できます。
一方Flaskで、フロントエンドを例えばVue.jsにするのは、やればできますが少し手間が必要です。(そもそも小規模開発でそれをする意味はあまりないのですが)
またPythonと言えばAIです。
「AIとのつなぎこみ」という面でいうと、これは構造が緻密なDjangoに軍配が上がります。
AIエンジンとは緻密に接続しないと、うまくAIが動いてくれません。
Djangoはフロントエンドにおすすめ?
Djangoはバックエンド開発におすすめのフレームワークです。フロントエンドにも一部機能提供はありますが、大規模なフロントエンドプロジェクトやSPAを開発する場合、React、Angular、Vue.jsなどのフロントエンドの技術を組み合わせるのがおすすめです。
3. 年収で比較
年収はDjangoエンジニアの方が高いと言えます。
なぜなら、Djangoは大規模案件で採用されることが多いのに対して、Flaskは小規模案件で採用されることが多いからです。
それに加えて、AIという要素も見逃せません。
AIエンジニアは一般的に年収は高くなります。
したがって、AIを使うDjangoの案件だと報酬額も高くなりやすいです。
4. 求人件数で比較
Django | Flask | |
indeedの求人数 | 3,679件[indeedより] | 1,137件[indeedより] |
求人ボックスの求人数 | 1,844件[求人ボックスより] | 731件[求人ボックスより] |
dodaの求人数 | 223件[dodaより] | 91件[dodaより] |
マイナビ転職の求人数 | 91件[マイナビ転職より] | 37件[マイナビ転職より] |
リクナビNEXTの求人数 | 67件[リクナビNEXTより] | 21件[リクナビNEXTより] |
Greenの求人数 | 450件[Greenより] | 144件[Greenより] |
ご覧のように求人数ではDjangoの圧勝です。
Flaskエンジニアは地方の小さいITベンダーで求人している場合がほとんどですので、全国的に公開されるような求人では、どうしてもDjangoエンジニアの方が目立ちます。
しかし、目立たないだけで、あなたの住んでいる地域ではFlaskエンジニアを募集しているかもしれません。
また今後一層需要が高まるAI開発スキルを身に付けたい方も、Djangoの方がおすすめと言えるでしょう。
5. 難易度・学習コストで比較
繰り返し書いているように、Djangoは学習の難易度が高めです。
対してFlaskは比較的学習が容易です。
PHPの経験がある方は、フレームワークを使わずにPHPでWebシステムを開発することを想起してみるといいかもしれません。
Flaskでの開発は、あんな感じです。
学習が容易なのが理解できると思います。
6. 将来性で比較
DjangoとFlaskとではDjangoの方が将来性が高いと言えるでしょう。
両者の「日本での検索回数の推移」を比較してみると以下のようになります。(Googleトレンドより)
ご覧のように今後5~10年先はDjangoの方が高い需要を維持し続けると想定できます。
というのも「DRFの存在」「AIとの親和性の高さ」から、Djangoをバックエンドのシステムとして採用する企業は増えています。
対してFlaskですが、こちらについては、筆者は少し懐疑的です。
数年前は、FlaskがPHPを蹴散らすと考えていました。
ところが現状、そうはなっていません。
PHPの求人はなくなるどころか増えています。
とするとFlaskを使う案件は増えないのでは…?というのが、私の考えです。
まあでも、この業界は先のことは分からない業界ですので、数年後にまた状況は変わっているかもしれません。
Django・Flaskのおすすめの人の特徴
それでは最後に、DjangoとFlaskがおすすめの人・向いている人の特徴を解説していきます。
Djangoがおすすめの人の特徴
とにかく大規模案件に参画して、羽ばたきたい人はDjangoがおすすめです。
Djangoがおすすめの人の特徴
- 複雑で高度な技術を採用している現場で働きたい人
- AIの技術をマスターしたい人
- 高い報酬をもらいたい人
このような志がある人はDjangoを選択するべきです。
そして勉強が好きなことも大切な条件です。
Djangoは学ぶべきことが山のようにあります。
それらを一通りマスターしていないとDjango案件で振られる仕事をこなすことはできません。
Flaskがおすすめの人の特徴
続いてはFlaskがおすすめの人をご紹介します。
Flaskがおすすめの人
- 個人開発でWebシステムを開発したい
- 研究のためにちょっとしたWebシステムを作りたい
- 自分でお客を取り、地域に貢献していきたい
- Pythonを学習したが何を作ればいいか分からないので、とりあえずWebシステムの作り方をマスターしたい
といった方には、Flaskがおすすめです。
Flaskの最大の長所はその学習の容易さです。
そこまでシステム開発の学習に割く時間がない方にはぴったりです。
DjangoとFlaskを勉強する時のおすすめの参考書・入門書
ここまでの説明で多くの方は「DjangoとFlaskのどちらを勉強しようか」ある程度定まったことでしょう。
Djangoを勉強する時のおすすめの参考書
まずはDjangoを勉強する時のおすすめの参考書をご紹介します。
プログラミング業界では情報の鮮度がかなり重要です。
2022年6月時点でのDjangoの最新バージョンは4.0ですので、Django3やDjango4に対応している参考書を選ぶようにしましょう。
おすすめDjangoの本・参考書おすすめ8選【入門書もご紹介】
Djangoの本・参考書おすすめ8選【入門書もご紹介】
更新日:2024年10月23日
Flaskを勉強する時のおすすめの参考書
続いてはFlaskを勉強する時のおすすめの参考書をご紹介します。
2022年6月時点でのFlaskの最新バージョンは2.1.2ですので、Flask2対応の新しい参考書を選ぶようにしましょう。
まとめ:DjangoとFlaskはどっちがおすすめ?【学習コストの違いを比較】
今回はWebフレームワークの中でも人気のあるDjangoとFlaskの特徴や違い、向いている人の特徴について解説しました。
Django | Flask | |
ロゴ画像 | ||
使用言語 | Python | Python |
作れるもの | AI機能があるWebシステム | Webシステム全般 |
使用例 | YouTube、Instagram | 小規模サイト |
設計思想 | 人によるコードの書き方の差異が少なくなるように設計 (大規模開発向け) | 自由度が高く カスタマイズしやすい (小規模開発向け) |
汎用性 | 高い AIなどWeb以外の用途がある | 普通 AIは使われない |
年収 | 多い | 普通 |
求人数 | 多い | 少ない |
難易度・学習コスト | 難しい | 簡単 |
将来性 | 高い | 低い |
おすすめの参考書・入門書 | 実践Django Pythonによる本格Webアプリケーション開発 Python Django3超入門 Djangoのツボとコツがゼッタイにわかる本[第2版] | Python FlaskによるWebアプリ開発入門 Flaskで学ぶWebアプリケーションのしくみとつくり方 Flask Web Development |
学習方法 | Djangoを学べるスクールまとめ | Flaskを学べるスクールまとめ |
ご覧のようにどちらのフレームワークも長所と短所があります。
またDjangoやFlaskを新しく勉強したい方には、プログラミングスクールでプロから教わるのがオススメです。
言語選びやフレームワーク選びで答えがまとまらない場合は、プログラミングスクールの無料相談などを利用して有識者に相談するのもオススメです。
おすすめDjangoが学べるプログラミングスクール6選をご紹介
おすすめFlaskが学べるプログラミングスクールをご紹介【2024年最新】
Pythonが学べるプログラミングスクールおすすめ9選【社会人必見!】
更新日:2024年11月9日