※こちらの記事は、プロスタ編集部が現在大変人気の高いPythonの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト:PythonのWebフレームワーク4種比較
#PythonのWebフレームワーク4種比較
Webフレームワークは、Web開発において頻繁に利用される機能をあらかじめ作ったもので、「frame work」の名のとおり骨組みや枠として利用するものになります。
フレームワークを使用することで
・記述量が減る
・プログラミングの書き方を、ある程度統一することができる
・「○○フレームワークの経験がある人」のように、人材を集めるのが容易になる
といったメリットがあります。
Web開発においては、このフレームワークを使用して開発することが非常に多いです。
今回は、DjangoやBottleなど、PythonのWebフレームワークを4つご紹介します。
##django
Djangoは米国のLawrence Journal-World社のWeb開発部門である「World Online」が開発したWebフレームワークです。2005年に公開され、2008年9月にバージョン1.0がリリース、その後も活発に開発が続き、現在は安定版が1.9、最新は1.10となっています。
PythonのWebフレームワークの中では、最も人気の高いフレームワークの1つであり、中規模以上のWebアプリケーションの構築によく使われます。求人等で一番見かけるのも、このDjangoです。
Webフレームワークによく使用される
・URLディスパッチャー
・O/Rマッパー
・テンプレートエンジン
をはじめ、沢山の機能がDjangoには備わっており、「フルスタックフレームワーク」と表現されます。
また、管理画面が自動生成される機能も、公開当初は話題になりました。GAEに標準で含まれているなど、色々な場所で目にするフレームワークです。
##Bottle
PythonのWebフレームワークの中では一番シンプルで、軽量なフレームワークです。
「bottle.py」という1ファイルだけで構成されています。そのため、サーバへのデプロイも非常に簡単です。
また、1ファイルというシンプルさからか、ソースコードを眺めながら勉強目的で使用する方もいますし、このBottleを使って実用的なWebアプリケーションを作成している方も勿論います。
##Flask
軽量なフレームワークの中では、最も人気があるWebフレームワークです。小規模・中規模なWebアプリケーションの構築に向いています。
Flaskは元々2010年のエイプリルフールのジョークとして始まったものですが、作者であるオーストラリア人のArmin Ronacherが熱狂的な反響に応え、本物のフレームワークにしたという面白い経緯があるフレームワークです。Flask(フラスコ)という名前は、Bottle(ボトル)に対する言葉遊びで命名されました。
「マイクロWEBフレームワーク」と呼ばれており、その名の通り動作も軽量で、覚えることもあまり多くはありません。
また、Webアプリケーション全体を1つの.pyファイルに記述することも可能で、小規模なサイトの構築を素早く行うことができます。
##Tornado
Tornadoは、FriendFeedによって開発され、Facebookに吸収されたのちにオープンソース化されたWebフレームワークです。
Webフレームワークとしても充分な機能がありますが、Webサーバとしての側面もあります。
リアルタイムでの通信を行う「WebSocket」がサポートされているため、その目的で使用されることや、非同期Webサーバである「node.js」のPythonでの代替手段としても人気です。
Apacheではなくnginxと一緒に使用されるのが一般的で、静的なファイルの配信に関してはほかのWebフレームワークを圧倒するほど、高速に動作します。