TurboGears 0.9から搭載されているCatWalkを使ってみた。CatWalkとは,データベースの定義を動的に読み込んで,CRUDフォームを自動生成してくれるツール。
使い方は簡単で,controllers.pyで
from turbogears.toolbox.catwalk import CatWalk
して,Rootクラスなどに
catwalk=CatWalk(model)
と定義してあげるだけ。TurboGearsのアプリを起動し,http://localhost:8080/catwalk/ などにアクセスすると,CatWalkの画面が現れる。
上のコードで,Rootクラスにcatwalkというアトリビュートを設定しているわけだけど,CherryPyがURLを分解して,catwalkにリクエストを届けてくれているのですな。
画面は左のような感じ。日付編集用にはカレンダーウィジェットが用意されているし,リレーションも編集できる。パスワードがハッシュ化されているのとかも注目ポイントね。TG_User由来のmodelであれば,設定ひとつで勝手にパスワードをハッシュ化してくれて,かつ標準の認証(identity)でも使ってくれる。いやあ,気が利いているよなあ。データ投入用とか,お客に見せない系のフォームはもうこれでOKという感じ。Pythonistaの「能力の余りよう」といったら凄いわ。
Ajaxっぼく作ってあるので,ブラウザ上でURLが切り替わってリフレッシュするような遷移はほとんど無い。「戻るボタンが使えない」とかいうと怒るよ言ってないですかそうですか。