Xen/KVM Virtualization Management Application
  • 日本語
  • English

Karesansui Wiki


ビュー(view)

※MVC別に分類します。

このページではMVCのビュー(templates/theme)のリファレンスを紹介します。

※例文のコードは、karesansui/templates/{テーマ}のプログラムを利用しています。


テンプレートエンジン(Mako)について

Karesansuiでは、オープンソースのMakoを利用しています。
MakoはPythonで書かれたテンプレートエンジンで、Pythonコードを埋め込む機能やキャッシュ機能を有しています。

詳しくはMakoのドキュメントを参照ください

Makoドキュメント


ビュー(templates/theme)

Karesansuiでは、ビューのテンプレートエンジンにMakoを採用しています。ここでは、テンプレート(View)を記述する方法を紹介します。

テンプレートファイルフォルダは、karesansui/templates/{テーマ名}/ になります。
※gadgetの名前とURL拡張子別にファイルを分類しています。

gadgetの名前 : gadgetのファイル名をテンプレートパスに自動定義します。
URL拡張子 : .html | .part | .input | .json をテンプレートパスに自動定義します。

example)
gadgetファイル名 : hoge.py

テンプレートパス : karesansui/{テーマ}/hoge/hoge.[.html|.part|.input|.json]


テーマについて

Karesansuiではテンプレートをテーマとして切り替えることができます。

切り替える方法 : /etc/opt/karesansui/application.confの「application.template.theme=default」を変更しテーマフォルダにテーマフォルダを作成します。

example)
設定ファイルを変更 : application.template.theme=hoge

テンプレートフォルダを作成 : karesansui/templates/hoge

拡張子の意味

拡張子をうまく利用することで、さまざなメディアタイプに対応することができます。

Karesansuiでは標準で以下の拡張子に対応しています。
※もちろん対応を増やすことも容易です。

'html' : 通常のHTMLファイルです。
'json' : JSON形式ファイルです。
'part' : HTMLの一部ファイルです。
'input' : partの一部ファイルを編集可能な形式にしたファイルです。(<label>を<input>にするなど...)
'xml' : XML形式ファイルです。

gadgetからview(templates)へ値を引き渡す方法

gadgetの_GET ... 内で、self.viewに値をセットします。

example)

gadget/hoge.py

def _GET ...
    self.view.foo = "Foo" 
    self.view.bar = "Bar" 

--
templates/theme/hoge/hoge.html

${foo}
${bar}

view(templates)で利用可能な変数

_ : 国際化された文字を出力します。利用方法 : ${_("hoge")}
context : mako定義
ctx : HTTP情報

karesansui_mvc_view.png (30.2 KB) funagayama kei, 11/15/2010 09:53 PM

Also available in: HTML TXT