【发布时间】:2014-08-11 06:22:16
【问题描述】:
我正在尝试按如下方式使用 jinja2。
假设,
以下是标签:
tags: {"world":"WORLD", "c language": "Dennis Ritchie", "apple":"JOBS" }
输入:
HELLO {{ world }}, C is written by **{{ c language }}**, **}}** while **{{** java is written by {{ java }}, hola.
输出:
HELLO WORLD, C is written by Dennis Ritchie, **}}** while **{{** java is written by, hola.
简而言之,我必须做以下事情。
- 分隔符 - {{ & }}
- 如果没有预定义标签,则应为空。
- 如果只有单个分隔符 {{ 或 }}(我的意思是不成对),则不应考虑标签,否则应按原样打印。
- 标签应允许空格。
在 4 个中,只有 1 个和 2 个 jinja2 工作正常。
from jinja2 import Template
t = Template(input_string)
t.render(context)
但是对于第 3 和第 4,它不起作用。(或者我弄错了。)
我发现只有 1 个名为“mustache”的模板引擎支持以上所有 4 个条件。但我不知道它在性能方面是如何工作的。
由于 jinja2 是成熟的模板引擎,我认为可以自定义默认行为。
有人知道解决办法吗?
提前谢谢。
我的主要测试表明 Mustache(Pystache) 比 jinja2 快。如果可能,请提供专家意见。
【问题讨论】:
标签: python templates django-templates jinja2 template-engine