なにかテンプレートエンジンをいじってみたくなったので探してみたら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。