なにかテンプレートエンジンをいじってみたくなったので探してみたらGenshiってのがちょっと気になったので触ってみる。
参考:
ブラウザで
http://ftp.edgewall.com/pub/genshi/Genshi-0.4.2.tar.gz
にアクセスしてDL。
解凍。
Genshi-0.4.2というフォルダができる。
その中のgenshiフォルダをgenshi-test.pyと同じ階層に置く。
genshi-test.py:
#!C:\\Python25\\python.exe
# -*- coding: utf8 -*-
def main():
print "Content-Type:text/html\\n\\n",
import cgi
from genshi.template import TemplateLoader
from genshi.template import MarkupTemplate
import os
TEMPLATE_DIR = "./"
loader = TemplateLoader(TEMPLATE_DIR)
tmpl = loader.load('genshi-tmpl.html')
myList = [u'焼肉',u'寿司',u'手羽先']
stream = tmpl.generate(myH1 = u"好きな食べ物", myList = myList)
html = stream.render("html")
print html
if __name__=='__main__':
main()
genshi-test.pyと同じ階層にテンプレートファイルgenshi-tmpl.htmlを置く。
genshi-tmpl.html:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/" lang="ja">
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=UTF-8" />
<title>genshi</title>
</head>
<body>
<h1 py:content="myH1">hogefuga</h1>
<ol>
<li py:for="item in myList">${item}</li>
</ol>
</body>
</html>
ブラウザからgenshi-test.pyにアクセスすると
好きな食べ物
1. 焼肉
2. 寿司
3. 手羽先
と表示。おk。