是否可以在Tornado模板中传递上游细节?

时间:2013-03-15 21:04:15

标签: python tornado

在Tornado中,您可以扩展模板,这是一个很棒的功能。 但是,有时我想将变量传递给我正在扩展的模板。 这似乎不会自动生效 - 有办法吗?

示例

--file.py--
render_string("Foo.html",text="Hello World")


--Foo.html--
{% extends Bar.html %}
    {%block b1 %}
    Hi Mom.
    {% end %}
{% end %}

--Bar.html--
This is a triumph.
I'm making a note here -- {{text}}
{% block b1 %}
Also, this
{% end %}

如何将文本传递给扩展名,以便Bar.html可以理解它?

1 个答案:

答案 0 :(得分:2)

当您使用self.render()self.render_string()时,龙卷风模板引擎会找到第一个扩展页面然后出现。

并且,当您将变量传递给这些函数时,它可以从第一个到最后一个模板进行扩展。 所以,你的代码是正确的,并没有问题。

(而且,您应该使用{% extends "Bar.html" %}而不使用{% end %}语句。)