Flask の使いどころ
Web アプリを仕事ではほとんど書いたことが無かったのですが、Flask を仕事で使う事にしたので、書いてて感じた Flask の使いどころを。
追記
コメントに色々な意見を頂いておりますので、是非そちらも。
がっつり使われた方の感想
- Flaskを1年仕事で使った感想 - kawaken’s blog http://d.hatena.ne.jp/kentaro_kawano/20120115/1326612808
結論
とりあえず箇条書きで ...
- データベースサーバとの接続が前提なら、 Flask を使うのはやめる
- Flask-* という Flask の拡張を使う時点で、Flask を使うのはやめる
- 大規模で Blueprints を使う前提なら、Flask を使うのはやめる
- 小さなアプリでプラガブルな仕組みを自分で作るには良い
- パーミッションは Flask-Principal が良さそうだが、更新はほぼ止まっている
- github 上で、 clone してやっている人はいますが、コードが増えすぎているのでアウト
- フォルダ構成を考えるのがかなり面倒
- ドキュメントがちゃんと書いてありそうで意外に書いてない
- 情報が多そうで正直そんなに多くない、Django の方が全然多い
- ある程度なら Pyramid がこれから来るのかな
- Bottle は 1 ファイルタイプなので Flask と同じ道をたどる気がしている
- Pyramid はドキュメントが膨大なのは魅力、また色々な機能が(最初から入っている)
- 中規模であれば Django でイイと思う
- 大規模はそもそも Python でいいのかという問題があると思う
Flask の問題
- そもそもパーミッション関連が一切ないので、自前実装前提
- データベース連携は自前でやるので Flask-SQLAlchemy 等を使う前提
- 色々やろうとし始めると、まったく機能がないので色々実装する事になる
- つまりそもそもある程度ライブラリとかを実装できる前提
- Flask で書かれた OSS が意外にない
- 知らないだけかも
- json を戻すとかその辺に気が利いてない
基本は機能が足らないです。Django をマネして色々な機能を追加したりしているようですがどれも中途半端です。
Flask の魅力
Flask を選んだ理由
- そもそも外部データベースを使用しない
- 外部 API がメイン
- 拡張を使う予定が無い
- 使うとしても Flask-Principal くらいで、これも fork して自前で書き直すので問題無い
- ページ数としてはかなり小さい
感想
最初は Django で書いていたのですが、テストとか色々やりづらかったり、元が大きかったり、データベース連携が前提だったりと、あまりにも大きすぎて Flask に切り替えました。
Blueprints は便利ですね、自分でプラガブルな仕組みが作れるのはありがたいです。
Flask を業務に持ち込むとしたらかなり限定的な状況な気がします。また作る人は多くても 1~2 くらいでしょうか。それ以上になると、オレオレのコードが増えてきすぎて、別のフレームワークを採用した方が、イイ気がします。
基本的にデータベース連携しないウェブアプリはほぼ無いと思いますので、それがある時点で Flask は選択肢から外れるんじゃ無いかなぁと。ちょこっとしたツールやウェブサイトを作るにはサクサク作れていいんですけどね。
さすがに仕事で作るとメンテナンスや拡張が合ったりすると思うのでそれを考えるとかなり厳しい気がします。