2008/11/13

Django template languageを使ってHTMLを分離した

Google App APIはDjango template engineを含んでいるのでなにもインストールせずに使える。即興で作ったこともあり、HTMLとロジックが混ざっていて気持ちがわるかったので分離してみた。

http://docs.djangoproject.com/en/dev/topics/templates/

coexpression.htmlにテンプレートを作っておいて (抜粋)
<<<


{% for gene in coexpression_genes %}





{% endfor %}
Affymetrix IDGene SymbolCorrelation Coefficient
{{ gene.affy_id }}{{ gene.gene_symbol }}{{ gene.cor }}

>>>
coexpression class から以下のように呼ぶ。template_values を介して変数を渡している。dictionary を渡すと dot (.) と key で参照できるようになる。Rubyの動的メソッドっぽい。
<<<
template_values = {'coexpression_genes': coexpression_genes, 'keyword': keyword}
path = os.path.join(os.path.dirname(__file__), 'coexpression.html')
self.response.out.write(template.render(path, template_values))
>>>

ついでにCSSも拾ってきてデザインがかわいくなったよ。

コードを見たいひとは以下からどうぞ。

http://github.com/dritoshi/gaexpr2/tree/master

{{image 0, '画像の説明', nil, [730,555]}}