プログラミング言語のひとつであるPythonは、より効率的にシステムを統合することができます。フレームワークとは、ソケットやプロトコル、プロセス/スレッド管理などの低レベルの詳細を処理することなく、開発者が作業を素早く終わらせることを可能にするモジュール/パッケージのコレクションであると言えます。
さて、世の中には役に立つフレームワークがかなりたくさんあります。その中から選ぶための時間と労力を節約するべく、この記事では、いくつかを選んでご紹介します。人気のあるフレームワークと、まだよく知られていないフレームワークの両方が含まれています(順不同)。どうぞご覧ください。
【タイトルをクリックすると、該当のWebサイトが開きます(一部を除く)】
25. Reahl
Reahlは、再利用可能なウィジェットやイベントといったGUIプログラミングでおなじみの概念を用いて、純粋にPythonでWebアプリケーションを構築することができます。入力検証を一箇所で定義したり、ユーザー権限の変更に応じて特定のユーザーインターフェース要素を隠したり、灰色表示させたり、ローカル言語やユーザーに応じてユーザーインターフェース要素を異なる形で表示するようにシステムをカスタマイズしたりすることができます。
24. Itty.py
Itty.pyは小さなWebフレームワークで、現在ルーティング、基本応答、HTTPステータスコード、現在のタイプ、ヘッダー、リダイレクト、ファイルアップロード、URLパラメータ、静的メディアサービングをサポートしています。
23. Pecan
PecanはPylons、CherryPy、TurboGearsに影響を受けた効率的なPythonフレームワークです。非常に軽量なフレームワークでありながら、HTTPベースのアプリケーションを作成するための広範な機能セットを提供しています。Pecanには、ルーティングを容易にするオブジェクトディスパッチや、RESTスタイルのコントローラ、JSON、拡張可能なテンプレート言語のサポートを備えています。
22. Libavg
Libavgは、C++で書かれ、Pythonからスクリプト化されたサードパーティ・ライブラリです。プログラマーやデザイナーがメディアアプリケーションを素早く開発することを可能にします。OpenGLをサポートし、ハードウェアアクセラレーションとテキスト、画像、カメラ出力、ビデオ、ベクターグラフィックスのような様々な表示要素を利用できます。
21. Bobo
Boboは、WSGI Webアプリケーションを開発するための軽量なフレームワークです。URLをオブジェクトにマッピングしたり、オブジェクトを呼び出してHTTPレスポンスを生成したりするような機能が含まれています。テンプレート言語やデータベース統合レイヤーなど、アプリケーション固有のライブラリで提供される機能は備えていません。
20. Zope2
Zope2はWebフレームワークであり、汎用アプリケーションサーバーでもあります。1998年のリリース以来、Zopeは成長を続け、多くの異なるアプリケーション、フレームワーク、ライブラリ、ツールに進化してきました。
19. Grok
Grokは、初心者から上級者まで使える強力なPythonのWebフレームワークです。Zope3ライブラリを使用して構築されており、アプリケーションを構築するために使用できるプラグイン可能なビルディングブロックを作成することに重点を置いています。さらに、DRYアプローチを採用しており、構成構造に関する規約がある優れたツールです。
18. Klein
Kleinは、Pythonを使用して本番環境に対応したWebサービスを作成するためのマイクロ Webフレームワークです。これは、返されたもの(バイト単位)を正しく処理しようとするものです。通常のテキスト、リソース、レンダラブルを、同期(return経由)または非同期(Deferred経由)で返すことができます。
17. Morepath
MorepathはPythonのWSGIマイクロフレームワークで、モデル駆動で柔軟なアプローチを用いています。シンプルで一貫性のある、普遍的な拡張とオーバーライドのメカニズムにより、再利用可能なコードをサポートする拡張性を備えています。ハイパーリンクを理解し、REST Webサービスを開発するためのすべてのツールを備えています。
16. Werkzeug
WerkzeugはPython用のWSGIユーティリティライブラリで、強力なデバッガ、キャッシュコントロールヘッダ、フル機能のリクエストとレスポンスオブジェクト、タグ、ファイルアップロード、クッキー処理、URLルーティングシステムといくつかのコミュニティから提供されたアドオンモジュールを満載しています。特定のテンプレートエンジンやデータベースアダプターを強制するものではありません。
15. wxPython
wxPythonは、C++で書かれたクロスプラットフォームのGUIライブラリです。堅牢で高機能なGUIを持つプログラムを簡単に作成することができます。標準的なダイアログに加え、ドッキング可能なウィンドウ、2次元パス描画API、様々なファイルフォーマットのサポート、ワープロとテキスト編集の両方のウィジェットが含まれています。
14. CubicWeb
CubicWebは、コンポーネントとオブジェクト指向の設計原則を再利用してWebアプリケーションを構築する開発者を支援するセマンティックWebアプリケーションフレームワークです。クエリ言語、選択と表示のメカニズム、ワークフロー、セキュリティ、複数データベース、明示的データモデルなどの機能を備えています。
13. Falcon
FalconクラスのインスタンスはWSGIアプリケーションであり、任意のWSGIサーバー上で実行することができます(Gunicornを使用)。高度に同時進行するワークロードのもとで、APIのパフォーマンスがボトルネックになることはないでしょう。また、多数のものから際立ったプロジェクトを作成するために、実装をカスタマイズしたりチューニングしたりする自由度が高くなっています。
12. Web.py
Web.pyは、パブリックドメインで利用可能なpythonのためのシンプルで強力なWebフレームワークです。その目的は、Webアプリを作るための理想的な方法を構築することです。Web.pyの各部分は、他の部分から分離されています。Pythonのオブジェクトを公開する代わりに、HTTPレスポンスを構築することができます。
11. Tornado
Tornadoは、FriendFeedで開発された非同期ネットワークライブラリおよびPython Webサーバーです。ノンブロッキングネットワークI/Oを使用することで、数万個のオープン接続まで拡張することができます。Python 3.4, 3.3, 3.2, 2.7 & 2.6 で動作し、すべての Pythonのバージョンでcertifiパッケージを必要とします。
10. CherryPy
CherryPyは最小限のPython Webフレームワークで、開発者は他のオブジェクト指向のPythonプログラムを構築するのとほぼ同じ方法でWebアプリケーションを構築することができます。キャッシング、認証、セッション、エンコーディング、静的コンテンツなどのためのツールが組み込まれています。
9. WheezyWeb
WheezyWebは軽量、高性能、高同時性のWSGIフレームワークで、モダンで効率的なWebを構築するための主要機能を備えています。ルーティング、検証、依存性を考慮したコンテンツキャッシング、AJAX+JSON、ミドルウェアなどをサポートしています。
8. Pyramid
Pyramidは、シンプルで高速かつ信頼性の高いPythonのWebフレームワークです(Pylonsの後継)。実世界のアプリケーション開発をより生産的に、より楽しくするために設計されています。うまく統合され、必要とする多くの機能を提供する多くのパッケージが付属しています。
7. Web2py
Web2yは、高速でスケーラブル、ポータブルで安全なデータベースの駆動型Webアプリケーションを迅速に開発するためのフルスタックのPythonフレームワークです。インストールは不要で、設定可能なファイルもなく、USDドライブから実行することができます。さらに、エラーを管理するためのチケットシステム、キャッシュシステム、柔軟な認証システムも内蔵されています。
6. PyGUI
PyGUIは、Pythonのユニークな言語機能とデータ型を利用して、クロスプラットフォームのGUI APIを開発することができます。その目的は、Pythonアプリケーションとプラットフォームの基礎となるGUIの間にできるだけ少ないコードを介在させることで、アプリケーションの表示が常にプラットフォームのネイティブGUIを反映するようにすることです。
5. Flask
FlaskはJinja2、WerkzeugをベースにしたPython用のマイクロフレームワークです。開発サーバーやユニットテストのサポートが内蔵されています。また、RESTfulリクエストのディスパッチとWSGI準拠で、完全にUnicodeに対応しています。
4. Bottle
Bottleは、Python用のシンプルで高速かつ軽量なWSGIマイクロWebフレームワークです。Python Standard Library以外の依存関係はなく、単一ファイルのモジュールとして配布されます。URLパラメータをサポートしたリクエストのディスパッチ、テンプレート、キーデータベース、内蔵のHTTPサーバー、サードパーティのサーバーやテンプレートエンジンのためのアダプタを提供しています。
3. TurboGears
TurboGearsは、データベース駆動で拡張可能なアプリケーションを数分で作成できる、高速Web開発フレームワークです。このフレームワークは、主に複雑な問題を解決するために設計されています。また、マルチデータベース展開のためのトランザクションマネージャと、最も堅牢なオブジェクトリレーショナル管理システムを提供するSQLAlchemyが搭載されています。
2. Django
Djangoは、プロフェッショナルのための高レベルのPython Webフレームワークです。より良いWebアプリケーションをより早く、より少ないコード行数で構築することを容易にします。Djangoは、Web開発プロセスにおける面倒な作業の多くをこなしてくれるため、すでに存在している物や技術と同じものを一から作り直す必要がなく、アプリケーションの作成に集中することができます。さらに、Djangoは高速でスケーラブル、そして安全です。
1. Kivy
Kivyは、マルチタッチ・アプリのような革新的なユーザーインターフェースを利用したアプリケーションを開発するためのオープンソースコミュニティプロジェクトです。20以上の拡張性の高いウィジェット、強力なグラフィックエンジン、マルチタッチ・マウスシミュレータが付属しています。このフレームワークは安定しており、十分に文書化されたAPIを備えています。