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

for*_*ran 6 python templates tornado include

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

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

test.py

import tornado.template
loader = tornado.template.Loader(".")
templ = loader.load("t1.html")
Run Code Online (Sandbox Code Playgroud)

t1.html

{% include "t2.html" %}
Run Code Online (Sandbox Code Playgroud)

t2.html

{% extends "t3.html" %}
Run Code Online (Sandbox Code Playgroud)

t3.html

{# empty #}
Run Code Online (Sandbox Code Playgroud)

在跑步的时候,test.py我会NotImplementedError在龙卷风中长大template.py

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

Col*_*ean 5

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

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

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