这是 Python 中最简单、轻量级的 html 模板引擎,我可以使用它来生成自定义的电子邮件通讯。
问问题
6977 次
5 回答
17
对于一个非常小的模板任务,Python 本身并没有那么糟糕。例子:
def dynamic_text(name, food):
return """
Dear %(name)s,
We're glad to hear that you like %(food)s and we'll be sending you some more soon.
""" % {'name':name, 'food':food}
从这个意义上说,您可以在 Python 中使用字符串格式化来进行简单的模板化。这几乎是轻量级的。
如果你想更深入一点,Jinja2在许多人看来是最“设计师友好”(阅读:简单)的模板引擎。
您还可以查看 Mako 和 Genshi。最终,选择权在您手中(具有您想要的功能并与您的系统完美集成的功能)。
于 2010-12-10T06:04:55.007 回答
16
string.Template有什么问题吗?这是在标准 Python 发行版中,并由PEP 292涵盖:
from string import Template
form=Template('''Dear $john,
I am sorry to imform you, $john, but you will not be my husband
when you return from the $theater war. So sorry about that. Your
$action has caused me to reconsider.
Yours [NOT!!] forever,
Becky
''')
first={'john':'Joe','theater':'Afgan','action':'love'}
second={'john':'Robert','theater':'Iraq','action':'kiss'}
third={'john':'Jose','theater':'Korean','action':'discussion'}
print form.substitute(first)
print form.substitute(second)
print form.substitute(third)
于 2010-12-10T06:06:21.623 回答
1
我认为Werkzeug 迷你模板非常符合要求。
这是Github 上的源代码。
于 2010-12-10T06:05:53.343 回答
-2
试试python-micro-template:
https://github.com/diyism/python-micro-template
用法示例(kivy):
import python_micro_template
...
kvml=open('example_kivy_scrollview.kvml', 'r').read()
kvml=python_micro_template.tpl.parse(kvml)
grid=Builder.load_string(kvml)
...
模板示例(kvml):
<:for i in range(30):#{#:>
Button:
text: '<:=i:><:for j in range(6):#{#:><:=j:><:#}#:>'
size: 480, 40
size_hint: None, None
<:#}#:>
于 2014-02-26T02:41:00.637 回答