例如,我使用下一个代码(Jinja2 docs)将Jinja2附加到我的pythonic项目中:
from jinja2 import Template
template = Template(text_of_the_template)
template.render(**kwargs)
使用自定义模板标记的示例(来自here):
from jinja2 import contextfunction
@contextfunction
def widget(context, template_name, **extra_context):
t = jinja_env.get_template('widgets/' + template_name)
ctx = dict(context.items())
ctx.update(extra_context)
return t.render(ctx)
jinja_env.globals['widget'] = widget
# And then in the template:
{{ widget('last_tweets.html') }}
如何绑定Jinja2环境和上面的代码(Template类)?
答案 0 :(得分:2)
您应该通过环境来获取模板,而不是使用jinja2.Template()
来获取模板。
所以你会得到这样的东西:
template = jinja_env.from_string(text_of_the_template)
template.render(**kwargs)
这是dos:http://jinja.pocoo.org/docs/api/#jinja2.Environment.from_string