Pylons

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Pylons
開発元 Ben Bangert, James Gardner
最新版 1.0.1 / 2012年8月13日
プログラミング言語 Python
対応OS クロスプラットフォーム
種別 Webアプリケーションフレームワーク
ライセンス BSD License
公式サイト www.pylonshq.com
テンプレートを表示

PylonsPython 言語で書かれた オープンソースwebアプリケーションフレームワークである。再利用性を促進し、機能を各モジュールに分割するためにWSGI 標準を広い範囲にわたり採用している。

Pylons は、DjangoTurboGears などを含む昨今の webアプリケーションフレームワークの中でも最も新しいもののひとつである。Ruby on Railsに強い影響を受けており、主要なコンポーネントのうちRoutesWebHelpers は、Rails の機能を Python で再実装したものである。

目次

[編集] 特徴

[編集] 構造

Pylons は他社が開発したツールに基づくほぼ完成したスタックを持つことで知られており、明らかに NIH シンドロームを避けている。

[編集] インストール、依存ソフトウェア、設定

Pylons の公式なインストールの方法は、the Python CheeseShop 経由でEasyInstall を用いて行うことで、追加のツールもたいていは同じ方法でインストールされる。EasyInstall は必要に応じてパッケージの依存関係を解決する。Pylons と Paste を一緒にパッケージした配布系もあるが、配布系のパッケージは公式の配布物より遅れる傾向がある。Pylons は .egg ファイルを .zip ファイルに変更し、内容を展開することでもインストールできる。

Pasteプロジェクトの設定、テスト、配置に使用される。共通の INI構成フォーマットを用いており、Paste では開発と配置の設定を、インタラクティブなデバッガなどの Pylons の複雑な部分を製品版のユーザーから隠蔽した状態で開発者が同じコードベースをもとに動作させられるよう、複数の"プロファイル"を用いることができる。

[編集] URL のディスパッチ

Selectorなどの WSGI 互換の URL ディスパッチャであればどれでも使用可能だが、現在 Pylons 用に広く使われている唯一の URL ディスパッチャはRuby on Railsの URL ディスパッチ機構を Python で再実装したRoutes である。

[編集] HTML の生成

Pylonsでも採用されたRailsのもう一つの機構が、Routes の設定に基づき URL のマッピング機能を提供するWebHelpersである。WebHelpers は、script.aculo.usPrototype ライブラリを利用したJavaScriptコードを生成するためのユーティリティ的な機能も提供する。

HTML フォームの検証と生成のために、FormEncodeFormBuild が用いられている。Mako の継承モデルを用いてフォームの生成を行うために、Mako も一部で用いられている。

[編集] テンプレート

Myghty がバージョン 0.9.5 まで Pylons のデフォルトのテンプレート言語であったが、バージョン 0.9.6 で Mako に置き換えられた。[1]いずれのテンプレート言語もインクルード、継承、任意の Python コードの埋め込みをサポートするテキストベース(XMLベースのものではない)のテンプレート言語である。

Pylons の緩く結合されたレイヤ構造により、それ以外のテンプレート言語も利用可能である。XML ベースのテンプレート言語Genshi もMako や Myghty いずれかの代わりに使用することができる。[2]

[編集] データベースの抽象化 / O/Rマッピング

Pylons にはデフォルトのデータベースライブラリはない。SQLObjectSQLAlchemy が知られている。

[編集] repoze.bfgとの融合とPyramidの誕生

Pylons はPylons プロジェクトが開発してきた。そしてPylons 1.0 からのコードは永久にサポートされる。しかし、2010年11月からの方針であるrepoze.bfgとの融合をすすめていくうえで、Pylonsの新しいバージョンはオリジナルのPylons 1.0 と大きく変わることとなる。Pylons の開発者達は当初コードのいくつかの部分を書き換える計画だったが、新しいコードを書き進めていくうちにrepoze.bfg側に近づいていくことに気がつき、それがPylonsとrepoze.bfgとの融合に繋がっていった。こうしてPyramidと銘打った新しいプロジェクトが開始されることとなる。

[編集] 外部リンク

Pylons の標準インストールで用いられるパッケージ、および人気の高い追加パッケージ

  • Myghty - URL のディスパッチ、コントローラ、キャッシュ機構、テンプレート機能など
  • Mako - Myghty 以外のテンプレートエンジン
  • Python Paste - プロジェクトの設定、テスト、配置
  • EasyInstall - インストールとパッケージの依存関係
  • Routes - Rails routes に基づく Routing の実装
  • FormEncode - フォームの検証と生成
  • WebHelpers - HTML ヘルパー機能

[編集] メーリングリスト

Google Groups からの情報によると(2008年1月10日):

  • メンバー 1211 人
  • 月平均 284 メッセージ(過去3ヶ月間)

[編集] 脚注

  1. ^ Haas, Christoph Beginning Pylons. Retrieved July 5, 2007
  2. ^ Genshi Wiki Pylons with Genshi Retrieved July 5 2007

[編集] 関連項目