python的轻量级模板引擎

python的轻量级模板引擎,python,templating,Python,Templating,这是Python中最简单、重量最轻的html模板引擎,我可以用它来生成定制的电子邮件新闻稿。对于一个非常小的模板任务,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':na

这是Python中最简单、重量最轻的html模板引擎,我可以用它来生成定制的电子邮件新闻稿。

对于一个非常小的模板任务,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中的字符串格式进行简单的模板设置。这是最轻的

如果你想更深入一点,在很多人看来,这是最“设计师友好”(阅读:simple)的模板引擎

你也可以看看Mako和Genshi。最终,选择权归你(什么具有你想要的功能并与你的系统很好地集成)。

我认为这很符合你的要求

这是Github上的。

有什么问题吗?这在标准Python发行版中,包括:

在谷歌搜索微小的Python模板时,发现了Titen,其源代码仅为。Titen可以在列表上进行迭代,而内置str.format不能


声称重量轻,但与滴度相比,它相对较胖(>200KB)。Jinja2和Django模板也远远超过100KB。

尝试一下python微模板:

用法示例(kivy):

模板示例(kvml):


按钮:
文本:“”
尺码:480,40
大小提示:无,无

我同意,很多时候Python的格式化功能正是我们所需要的。您可以执行类似于“Hello{foo}.format(foo=“World”)的操作。同样,考虑Python <代码> String 模块:但是一旦开始在模板中需要一些条件或迭代逻辑,您就需要在其他答案中建议的更实质性的东西。Str.Falm()比String。模板更强大。注意:两个链接都无效,如Sun 2017—04-02T0:41:01。
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)
import python_micro_template
...
kvml=open('example_kivy_scrollview.kvml', 'r').read()
kvml=python_micro_template.tpl.parse(kvml)
grid=Builder.load_string(kvml)
...
<:for i in range(30):#{#:>
Button:
    text: '<:=i:><:for j in range(6):#{#:><:=j:><:#}#:>'
    size: 480, 40
    size_hint: None, None
<:#}#:>