gpt4 book ai didi

python - 如何将自定义模板标签传递给 Jinja2 Template 类?

转载 作者:行者123 更新时间:2023-12-01 05:31:15 27 4
gpt4 key购买 nike

例如,我使用下一个代码 ( 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') }}

如何绑定(bind)Jinja2环境和上面的代码(Template类)?

最佳答案

您应该通过环境获取模板,而不是使用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

关于python - 如何将自定义模板标签传递给 Jinja2 Template 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240578/

27 4 0