Pythonのstring.Template

DreamWeaverでhtmlテンプレート作ってたけど、
めんどいのでスクリプトのテンプレートエンジン使いたいなぁと思った。

pythonの標準機能に、テンプレートというクラスがあった事に気づいたので、
それを使うことにする。

テンプレートのミニマムなサンプル。

#テンプレート
import string
tmp = string.Template("hello${header}word")
tmp.substitute(header = "hi")
-> 'hellohiword'

置換のちょっと便利なやつだと思っていい



もうちっとちゃんと書いた。

# coding=Shift_JIS
import string

page = open('template.htm').read()
bodytxt = open('body.txt').read()

tmp = string.Template(page)
out = tmp.substitute(title = "タイトル", body = bodytxt)
print out

別にtemplate.htmを用意する。

<html>
<head>
<title>${title}</title>
</head>
<body>
ここはヘッダ<br>
<br>
${body}
<br>
ここはフッタ<br>
</body>
</html>

titleとかbodyが見つからないと、例外が出るので注意してください。
例外でないようにしたsubstituteの安全版があったと思う