TurboGears: CherryPy Web Controller

TurboGearsのサイトにあるCherryPyドキュメント(http://www.turbogears.org/about/cherrypy.html)の超訳

CherryPy

Webってこんなに簡単だったっけ?

CherryPyを使い始めると、CGIも、Javaサーブレットも、今まで使っていたどんなものも、ま~ったく恋しくなくなります。CherryPyを使えば、Pythonでメソッドを書くくらい簡単に、コードをウェブに置いておけます。あなたはただオブジェクトをCherryPyのルートオブジェクトとにセットするだけでよいのであり、あなたのURLはそのルートオブジェクト内のメソッドにきれいにマッピングされます。信じられませんか?それじゃあHello worldを見てください。

import cherrypy

class MyRoot:

@cherrypy.expose()
def index(self, who="World"):
return "Hello, %s!" % (who)

ブラウザから「http://yourserver/?who=hoge」にアクセスすると、「Hello, hoge!」が見えるでしょう。こんなに簡単です!CherryPyは、あなたがルートにはりつけたメソッドに対する「index」メソッドを自動的に呼び出し、あなたが書いたどんなメソッドも同様に利用可能になるのです。またCherryPyは、あなたが定義したメソッドに適合しなかったリクエストがあったときにも呼ばれるような「default」メソッドを定義するようになっています。このデフォルトメソッドは、ブログみたいなURL(例えば:2005/09/16/cherrypy_rocks)を簡単にしてくれます。

そして、MyRootが他に何もサブクラスを持っていないことに気づきましたか?CherryPyはオブジェクトをセットアップすることからあなたを解放してくれるのです!

CherryPyはまた、セッションや、様々なリクエストに対応してデータを変換するフィルター、ビルトインウェブサーバーを提供してくれます。

CherryPyはPythonでウェブアプリケーションを書くための、自然で、楽しいやり方なのです。

CherryPyのスゲーところ

標準Pythonオブジェクトを通して、ウェブのためのコードを書く事ができること。

何がそんなにスゲーの?

すべてのURLはあるオブジェクトのメソッドを指します。CherryPyは、URLを見て、正しいオブジェクトを探し、そのオブジェクトにパラメータやPOSTデータなどのクエリを返します。またCherryPyはすばらしいフィルタリングシステムも持っていますので、メソッドが呼ばれる前後にコードを実行させるようなことも可能です。

Webサイト

http://cherrypy.org