Python 如何将自定义模板标记传递给Jinja2模板类?
例如,我用下一个代码()将Jinja2附加到我的Python项目中: 使用自定义模板标记(从)的示例:Python 如何将自定义模板标记传递给Jinja2模板类?,python,python-2.7,jinja2,Python,Python 2.7,Jinja2,例如,我用下一个代码()将Jinja2附加到我的Python项目中: 使用自定义模板标记(从)的示例: 如何绑定Jinja2环境和上面的代码(模板类)?而不是使用Jinja2.Template()获取模板,您应该通过环境获取模板 因此,您将得到如下结果: template = jinja_env.from_string(text_of_the_template) template.render(**kwargs) 以下是注意事项: from jinja2 import contextfunc
如何绑定Jinja2环境和上面的代码(模板类)?而不是使用
Jinja2.Template()
获取模板,您应该通过环境获取模板
因此,您将得到如下结果:
template = jinja_env.from_string(text_of_the_template)
template.render(**kwargs)
以下是注意事项:
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') }}
template = jinja_env.from_string(text_of_the_template)
template.render(**kwargs)