導(dǎo)入上下文行為

2018-02-24 15:39 更新

默認(rèn)下,每個(gè)包含的模板會(huì)被傳遞到當(dāng)前上下文,而導(dǎo)入的模板不會(huì)。這樣做的原因 是導(dǎo)入量不會(huì)像包含量被緩存,因?yàn)閷?dǎo)入量經(jīng)常只作容納宏的模塊。

無(wú)論如何,這當(dāng)然也可以顯式地更改。通過(guò)在 import/include 聲明中直接添加?with context?或?without context?,當(dāng)前的上下文可以傳遞到模板,而且不會(huì) 自動(dòng)禁用緩存。

這里有兩個(gè)例子:

{% from 'forms.html' import input with context %}
{% include 'header.html' without context %}

提示

在 Jinja 2.0 中,被傳遞到被包含模板的上下文不包含模板中定義的變量。 事實(shí)上,這不能工作:

{% for box in boxes %}
    {% include "render_box.html" %}
{% endfor %}

在 Jinja 2.0 中,被包含的模板?render_box.html?不能?訪問(wèn)?box?。從 Jinja 2.1 開(kāi)始,render_box.html?可以?這么做。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)