buto > /dev/null

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

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のどれかで入門したい!!