我可以在Tornado中添加一个扩展另一个的模板吗?

时间:2013-02-04 10:56:47

标签: python templates include tornado

当我尝试做一些简单的事情时,我遇到了一个错误,包括一个扩展另一个模板的模板...我不确定这是不支持的情况还是我做错了什么,因为看起来像一个非常常见的场景。

我为重现错误而编写的最小代码是:

test.py

import tornado.template
loader = tornado.template.Loader(".")
templ = loader.load("t1.html")

t1.html

{% include "t2.html" %}

t2.html

{% extends "t3.html" %}

t3.html

{# empty #}

运行时test.py我在龙卷风NotImplementedError

中获得了template.py

我错过了什么或这是一个错误吗?

1 个答案:

答案 0 :(得分:4)

啊,对不起,我太专注于丢失的积木了。

您所描述的内容无法使用{% include %},但可以使用{% module Template('t2.html', **args) %}为我工作,它将在其自己的命名空间中呈现模板。模块设置由tornado.web.Application自动完成,但不是在示例中使用最小模板加载器完成。

由于{% extends %}标记的实现方式,这种限制似乎存在。