Python 包括来自Jinja模板的块
我希望包含来自模板的块,而不是宏,因为许多模板将包含来自许多其他模板的内容,所以Python 包括来自Jinja模板的块,python,jinja2,Python,Jinja2,我希望包含来自模板的块,而不是宏,因为许多模板将包含来自许多其他模板的内容,所以扩展不是一个选项 我已经阅读了很多关于这方面的答案,包括,但是用例似乎总是不同的。我怀疑这是不可能做到的 template1.html {% block description %} <p> Here is a description </p> {% endblock %} {% from 'template1.html' import description %} <- doe
扩展
不是一个选项
我已经阅读了很多关于这方面的答案,包括,但是用例似乎总是不同的。我怀疑这是不可能做到的
template1.html
{% block description %}
<p> Here is a description </p>
{% endblock %}
{% from 'template1.html' import description %} <- doesnt work
你有两个选择
@app.template_filter('get_block')
def template_filter(block, file):
html = render_template(file)
# Then use regex or something to parse
# or even simple splits (better with named blocks), like...
content = html.split('{%% block %s %%}'%(block))[-1]
content = content.split('{%% endblock %%}')[0]
return content
使用它:
{% 'description'|get_block('template1.html') %}
我希望我能只用Jinja来做这件事,但是谢谢你聪明的建议。