2013-03-15 44 views
2

在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 %} 

我怎樣才能通過文字UP的延伸,從而可以一個bar.html理解它?

+0

你的意思是這方面是不是在父模板可用?我剛剛嘗試過您的示例,它的工作原理是:{{text}}替換爲「Hello World」。 – alecxe 2013-03-15 22:53:00

+0

這也適用於我,即使在Windows上!這裏回覆https://groups.google.com/group/python-tornado/browse_thread/thread/e46387a70f18853c – 2013-03-17 23:16:39

+1

這應該工作,但一個注意:應該是'{%extends'Bar.html「%}'和'{%擴展...%}'沒有'{%end%}' – 2013-04-06 18:15:02

回答

2

當您使用self.render()self.render_string()時,龍捲風模板引擎找到第一個擴展頁面並出現。

而且,當您將一個變量傳遞給這些函數時,它可以從頭到尾對模板進行擴展。 所以,你的代碼是正確的,沒有問題。

(也,你應該使用{% extends "Bar.html" %}沒有{% end %}它的語句。)

相關問題