在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可以理解它?
答案 0 :(得分:2)
当您使用self.render()
或self.render_string()
时,龙卷风模板引擎会找到第一个扩展页面然后出现。
并且,当您将变量传递给这些函数时,它可以从第一个到最后一个模板进行扩展。 所以,你的代码是正确的,并没有问题。
(而且,您应该使用{% extends "Bar.html" %}
而不使用{% end %}
语句。)