2 回答

TA贡献1805条经验 获得超9个赞
我认为 Jinja2 只支持一级继承。您可能能够使用包含来实现您想要做的事情。
layout.html:
<html>
<body>
{% block content %}
{% endblock %}
</body>
child.html:
{% extends "layout.html" %}
{% block content %}
{% with objects = some_objects %}
{% include "table.html" %}
{% endwith %}
{% endblock %}
table.html:
{% for object in objects %}
{{ object.name }}
{{ object.desc }}
{% endfor %}
当您使用以下代码呈现模板时,这将起作用:
d = [ {'name':'a', 'desc':'b'},
{'name':'c', 'desc':'d'}
]
return render_template('child.html', some_objects = d)
此外,如果您想向下传递多个变量,则此语法对with标签有效:
{% with objects = some_objects, title = title %}
经测试Jinja2==2.10.3

TA贡献1719条经验 获得超6个赞
如果您不在 2.11 上并且正在开发一个较小的应用程序,我建议您通过运行pip install Flask --upgrade
.
然后试着让你table.html
的孩子Home.html
但是,如果您热衷于使用旧版本。您需要像其他人建议的那样想出一个解决方法。
添加回答
举报