Python のフレームワークは Django しか使ったことがなかったが、ここ数日 Flask の勉強をしてみた。 Django は中規模以上のサイトに向いているいわゆるフルスタック・フレームワークで Flask は小・中規模に向いているマイクロ・フレームワークということで、私が適当に書きなぐるのであれば Flask のほうが良いように感じたからだ。 ただ、数日使ってみて正直そこまで感触は良くなかった。
- 日本語ドキュメント及び情報は Django のほうが遥かに充実している
- Flask の初期状態は確かに非常にシンプルだが O/R Mapper (Flask-SQLAlchemy) すら入っていないのはどうなのか
- モデル定義して DB 接続するだけでもそこそこ試行錯誤が必要で決して楽に実装できるわけではない
- Flask は Django に比べ学習コストが低いらしいが結局自分の思った通りの構成にしようとするとそうでもない
試行錯誤をする際に Copilot/ChatGPT に聞いたからすぐ解決できたが、これを自分でやった場合にベスト・プラクティスに辿り着くのが結構困難な気がする。 あと Django も初期状態は例えば PHP フレームワークの Laravel や CakePHP に比べてかなりシンプルなので、シンプルさを求めて Flask というふうにはならないと思う。 ということで Django を使ったことがなくて一から小・中規模のサイトを起こすなら Flask も良いかもしれないが、そうでないなら素直に Django を使っておくのが良いと感じた。 Django は公式ドキュメントの出来が素晴らしいと思う。 こんなに見やすいドキュメントは他の言語のフレームワークをすべて含めても見たことがない。