2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
我認(rèn)為 Jinja2 只支持一級(jí)繼承。您可能能夠使用包含來(lái)實(shí)現(xiàn)您想要做的事情。
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āng)您使用以下代碼呈現(xiàn)模板時(shí),這將起作用:
d = [ {'name':'a', 'desc':'b'},
{'name':'c', 'desc':'d'}
]
return render_template('child.html', some_objects = d)
此外,如果您想向下傳遞多個(gè)變量,則此語(yǔ)法對(duì)with標(biāo)簽有效:
{% with objects = some_objects, title = title %}
經(jīng)測(cè)試Jinja2==2.10.3

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您不在 2.11 上并且正在開(kāi)發(fā)一個(gè)較小的應(yīng)用程序,我建議您通過(guò)運(yùn)行pip install Flask --upgrade
.
然后試著讓你table.html
的孩子Home.html
但是,如果您熱衷于使用舊版本。您需要像其他人建議的那樣想出一個(gè)解決方法。
添加回答
舉報(bào)