※MVC別に分類します。
このページではMVCのビュー(templates/theme)のリファレンスを紹介します。
※例文のコードは、karesansui/templates/{テーマ}のプログラムを利用しています。
Karesansuiでは、オープンソースのMakoを利用しています。
MakoはPythonで書かれたテンプレートエンジンで、Pythonコードを埋め込む機能やキャッシュ機能を有しています。
詳しくはMakoのドキュメントを参照ください
Karesansuiでは、ビューのテンプレートエンジンにMakoを採用しています。ここでは、テンプレート(View)を記述する方法を紹介します。
テンプレートファイルフォルダは、karesansui/templates/{テーマ名}/ になります。
※gadgetの名前とURL拡張子別にファイルを分類しています。
gadgetの名前 : gadgetのファイル名をテンプレートパスに自動定義します。
URL拡張子 : .html | .part | .input | .json をテンプレートパスに自動定義します。
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の_GET ... 内で、self.viewに値をセットします。
example)
gadget/hoge.py
def _GET ...
self.view.foo = "Foo"
self.view.bar = "Bar"
--
templates/theme/hoge/hoge.html
${foo}
${bar}
_ : 国際化された文字を出力します。利用方法 : ${_("hoge")}
context : mako定義
ctx : HTTP情報