はじめに
日々、更新するためにこのような1日1歩進んでいくための記事を作成しようと思います。
実は、Djangoでブログサイトを作ったりしたことがあるので、その工程や追加で気が付いたことを順々に追っていこうかと思います。
初回は、案外、気になる Flask と Django の Web フレームワークはどう選べばいいの?です。
良い点・悪い点を明確にするため、PythonのWebフレームワークの1つ Flask と比べていきます。
比較してみた!!
2つの違いを簡単に分かりやすく表にまとめてみます!!
この後、一つ一つなぜそのような評価になっているのか詳細に見ていきます
Flask | Django | |
---|---|---|
使用言語 | Python | Python |
規模 | 小・中規模 | 大規模 |
クイックスタート ※1 | 少し遅め | 速い |
拡張性 | 高い | 低い |
速度 | 速い | Flaskより重い |
難易度 | 低い | 高い |
※1 純粋なソースコード量ではなく、主観の入ったwebサーバー起動までを示す?
使用言語
使用言語はお互いにPythonです。
こちらはインストールのしやすさ等は変わらないのでスキップします。
規模
Flask
後ほど拡張性で説明しまうが余計な機能をすべてそぎ落としてWebフレームワークとしての最小構成でできています。ですので、小規模から中規模を作るのに適しています。
逆にFlaskで大規模を作ろうとすると外部から多くの機能を追加する必要があるため、コストが高くつきやすく、後付けのためDjangoよりメリットである速度も遅くなりがちです。
Django
DBや認証といったWebフレームワークにあったらいいなの機能がたくさん搭載されています。そのため、後から追加せずとも元から入っているため、大規模で開発をする際にDjango以外のモジュールを追加で必要としないことが多いので大規模開発に向いているといえます。
逆に小・中規模を作ろうとすると余計な機能が盛りだくさんであるため、小規模なのに大規模並みの速度しかでないなどデメリットを講じてしまうため、向いていません。
クイックスタート
Flask
一からPythonのコードを書かないといけないので、手間はDjangoよりある感じ。
書くソースコードはさほどないので、速度だけでいうとそこまで差はない。
Django
プロジェクト作成 ⇒ アプリ作成 で起動はできるのでクイックスタートという点においては速くはある
拡張性
Flask
最小構成しか入っていないため、拡張性は高い。最適なものを自由に選ぶことができる点はメリットです。
別記事で紹介しているElelctron+Flaskの構成はこれを理由に組んでいます。
Django
元からWebアプリ開発に必要な機能が揃っているため、別で用意する必要がなく、拡張性とみるとなく見える。だが、書いた通り機能は揃っており、Djangoが用意したものであるため、親和性は高いです。
速度
Flask
Webフレームワークを構築する上での最小構成しか入っていないため、速度は高いです。そのため、他のモジュールと組み合わせやすい。
Django
あったらいいなの機能が盛りだくさんのため、どうしてもFlaskに軍配があがります。
ですが、速度を求めない限り、そんなに気にはならないと思います。
難易度
Flask
余計な機能がない分、シンプルな分かりやすいです。
そのため、Djangoより学習コストが低いです。
Django
モデルの調整や設定ファイルと決めることが沢山あり、学習コストは高めです。
学ぶのに自信がない人はFlaskから始めるのもありです。
まとめ
Flask と Django を比較してみました。私自身はどちらもプログラムを組んだことがあり、やはり、それぞれ利点がある分、組むときの規模感で選んだらします。簡単なアプリケーションはFlask、サーバーに載せて運用するサイトはDjangoでなんて今は書いていたりします。
FlaskのViewをDjangoの書き方のようにすることとかやってたこともあるので、自分のおすすめはDjango→Flaskだったりします。
挫折しない自分に合った学び方を選んでください。