FlaskとDjango
以前は、最短のキーワードを調べていた為、それぞれに深掘りせずに目標達成のために調べ物を進めてたが、進めるたびに出てくる単語がDjangoだった。
※主にサーバ周りの調べ物をしたときだが
今後の運用などを考えたときに、途中で変更するぐらいなら、最初から検討材料を持っておき進めたほうがよいと思った
Python系フレームワーク
過去の資料
Python系のFrameworkと言うところで調べるといろいろ出てくる
https://qiita.com/Morio/items/8db3c9b3ba7f2c71ef27
こちらは4つのFrameworkについてまとまっていたのでこちらをベースに検討
Flask(フラスコ)
<特徴>
- 軽量フレームワークの中で人気がある
- 小規模から中規模のシステムをカバーできる
- いくつかファイルを作ることで簡単にサーバを構築できる
Django(ジャンゴ)
<特徴>
- Python系のWebサーバで最も人気がある
- 中規模以上のシステムをカバーできる
- URLディスパッチャー、O/Rマッパー、テンプレートエンジンなど機能が充実
- コマンドで必要なファイルを生成できる
bottle(ボトル)
<特徴>
- Python系で最も軽量なフレームワーク
- 公式ページを見てもわかる通り、特に特徴も書くほども無いほどシンプル(良い意味で)
Tornado(トルネード)
<特徴>
- Facebookから生まれたオープンソースフレームワーク
- リアルタイム通信のWebSocketも可能
- 他のフレームワークの中で高速に動作する
まとめ
最初に書いた比較サイトもありましたが、それなりに調べていったところ、
https://hackernoon.com/django-too-big-flask-too-small-tornado-just-right-d5d002586bbc?gi=5cebe96248ec
というのを発見。そして、それを日本語訳しているサイトもあった
https://qiita.com/Nimimal/items/4aee5a5d20388d0b4f63
この中で説明されているTornadeの主な特徴
- WebSocketに対応している
- 非同期の実装が備わっている
- Webアプリケーションフレームワークのパフォーマンスとして「django < flask < tornado」である
うーん、実に興味深い。
こちのサイトにも書いてある通り、今後は注目していこう。
(2019/1/26追記)
Responder(レスポンダー)
<特徴>
- 2018年10月に公開されてから、本日まででGithubのStarが2600以上
- 作者がpipenvも作ってる
- WebSocketにも対応
- TemplateEngineが最初から組み込まれているので、Importがシンプル
- Background Taskもあり、呼び出して裏で処理を実行する!!ってこともできちゃう