这是Python中最简单,重量最轻的html模板引擎,可用于生成自定义的电子邮件简报。
答案 0 :(得分:12)
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)
答案 1 :(得分:11)
对于一个非常小的模板任务,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。最终,您可以选择(具有您喜欢的功能并与您的系统完美集成)。
答案 2 :(得分:1)
我认为Werkzeug Mini Templates非常适合该法案。
这是Github上的the source code。
答案 3 :(得分:0)
在Google中搜索 tiny template Python ,发现了Titen,其源代码仅为5.5 kB。 Titen可以对列表进行迭代,内置的 str.format 不能。
Mako声称是轻量级的,但与Titen相比,它相对较胖(> 200 kB)。 Jinja2和Django模板也超过100 kB。
答案 4 :(得分:-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
<:#}#:>