Google App Engine用フレームワーク「Kay」を使ってみました。
当初、Google App EngineのフレームワークにはDjangoを使用していました。
Djangoはとても強力なフレームワークです。
しかし、Google App Engineではその実力を十分に発揮できていません。
以前はapp-engine-patchなど、Djangoの強力な機能をGoogle App Engineで利用できるようにしようとするプロジェクトもありました。
app-engine-patchは現在、Django-nonrelプロジェクトに移行しているようです。
RDBを前提に作られているDjangoに対してパッチを当ててGoogle App Engineに対応するのではなく、
DjangoそのものをGoogle App Engine(やその他のNoSQL・non-relationalデータベース)に対応してしまおうというプロジェクトのようです。
(「Django-nonrelプロジェクト – but hopefulに日本語による解説があります。)
興味深いプロジェクトですが、情報も少ないこともあり、使用は避けました。
ということで、「Kay」です。
しっかりしたドキュメント「Kay v0.10.0 documentation」が日本語で用意されていましたので、
このドキュメントのチュートリアルに従って、作業を進めました。
ドキュメントがよくできていたので、特に苦労するところもありませんでした。
なお、環境はWindows XP + Python 2.5.4です。
「Kay」はテンプレートエンジンに「Jinja2」を使用しています。
これはDjangoのテンプレートエンジンとよく似ているようで、すぐに使用できました。
おそらくより強力な機能があると思うので、後で「Jinja2のドキュメント」に目を通しておくと良さそうです。
もう一つ「Werkzeug」というライブラリが使用されています。
これは何なのかよくわかりませんでした。(要調査)
ただ冗長な感じのURLマップの書き方は、「Werkzeug」の機能のようです。
※2010年5月8日追記:「Kayの新しいURLマッピング」が導入されて、とても使いやすくなりました。
現段階の印象としては、Djangoの思想を元にGoogle App Engine用に「Jinja2」と「Werkzeug」で再構築したフレームワークという感じです。
Djangoによく似ているので、Djangoを知っていると学習しやすいと思いました。
Google App Engine標準のDjangoでは対応していないセッション機能が使えるのも好印象です。
ちなみに、書籍『Google App Engineプログラミング入門』の「第4章 Kay Framework入門」は、Webで公開されているドキュメントと同じもののようです。
追記
ダウンロードするときはダウンロードのページにあるkay-0.8.0.tar.gzよりも、Mercurialでダウンロードするtipの方がおすすめ。
不具合等も修正されています。
hg clone https://kay-framework.googlecode.com/hg/ kay-framework