Python 是否可以在Tornado模板中向上游传递详细信息?

Python 是否可以在Tornado模板中向上游传递详细信息?,python,tornado,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 tr

在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能够理解它?

当您使用
self.render()
self.render_string()
时,tornado模板引擎会找到第一个扩展页并前进

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


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

您的意思是上下文在父模板中不可用?我刚刚试过你的例子,它是有效的:{{text}}被替换为“Hello World”。这对我来说也是有效的,即使是在windows上!在这里回复应该可以,不过需要注意的是:应该是
{%extends“Bar.html”%}
{%extends…%}
没有
{%end%}