Python 如何将自定义模板标记传递给Jinja2模板类?

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附加到我的Python项目中:

使用自定义模板标记(从)的示例:


如何绑定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)