Python Webフレームワークどれにする?

仕事はピュアPython(おそらく)なのでフレームワークはついつい忘れていた
Djangoしか聞いたことなかったので、軽くまとめます

Pythonフレームワーク

理解はフレームワークのリファレンス、入門記事を読んで理解できそうかってことです

FW リファレンス 特徴 向いている 理解
Django 認証機能が簡単に作れそう、メジャー 全般
bottle WSGI、シンプル 全般
Flask WSGI、Springに似ているらしい 全般
Tornado ノンブロッキングI/O ポーリング処理
Plone CMS 企業向けCMS ×
CherryPy 高速、安定 全般

WSGIとは
Web Server Gateway Interface Javaのサーブレット的な存在(Java Servletとは
Pythonは「フレームワーク×サーバ」の組み合わせで使えなくなる機能とかあったみたいですね
WSGIであればサーバの種類問わずフレームワークの機能が思いっきり使えます!

ノンブロッキングI/Oとは
ノンブロッキングI/Oとは ノンブロッキングI/Oと非同期I/Oの違いを理解する
ノンブロック:一方の処理が完了していないときはエラーが返ってくる
非同期:一方の処理が完了していないときは待機
こんな感じで覚えておこう

CMSとは
コンテンツマネジメントシステムとは
HTMLやCSSなどのWebサイト制作の技術がなくてもWebサイトが作れるシステム
CMSが導入されているとWeb担当者以外の人もサイト更新ができる
→ ニュース、プレスリリースの多いサイトに向いている

理解できそう?ちゃんと使えそう?

初心者にも理解できそうか、フレームワークの恩恵を授かれそうか、リファレンスを見てみた

Django
ユーザー認証がお手軽にできそうなのが良さそう
WSGI設定もできるのでサーバーによって機能が制限される心配もなさそう
Model(Entity)クラスの準備ではコマンドでマイグレーションするところがPHPのLalavelとそっくり
(あんまりPHP分かっていないからあれだけど)
メジャーなフレームワークなので入門記事が豊富で安心

bottle
bottle.pyファイルを配置するだけでフレームワークが使える
フレームワーク導入でつまずいて、なかなかコード書くところまでたどり着かない!がなさそう
コードはJavaのSpringのControllerクラスみたいで分かりやすかった
(アノテーションでルーティングするところ)
リファレンスもDjangoほどではないけれど、初心者には事足りそう

Flask
bottleより機能が充実している感じ? Spring Controllerクラスに見える
JSTLみたいにHTMLにif文を簡単に書けるのが良い
こちらもリファレンスは事足りそう

Tornado
ノンブロッキングI/Oを使いたいアプリならこれ!なんだろうな
bottle、Flaskと同じく軽量 コードはピュアPythonに見える
これまでのフレームワークよりもリファレンスが少ない感じがある

Plone
リファレンスがとても少ない…! 導入・運用がしやすいとしか分からない

CherryPy
ネーミングがいいですね bottleと同じく導入がお手軽そう
レガシーなフレームワークっぽいけど、その割にリファレンスが少ない
pythonコードからHTMLタグを返しているサンプルコードがあったけど。。。
(私、サーバサイドからHTMLタグ返すの好きじゃない)

Django、bottle、Flaskのどれかで入門したい!!