tornadoweb包括args的路径

时间:2014-11-10 07:14:02

标签: templates python-3.x tornado

我尝试在argv中包含模板路径:

site_argv = {
    'template'  : 'site_list.html'
}
return self.base.render('site.html', **site_argv)

和site.html包含来自模板变量:

{% include template %}

但错误文件模板不是fount,没有包含值变量的路径

FileNotFoundError: [Errno 2] No such file or directory: '/.../template/template'

我试试

{% module Template(template, **kwargs) %}

但找不到kwargs变量

我想要包含子模板,当我不知道父模板的args时,使用所有父模板args。

1 个答案:

答案 0 :(得分:0)

tornado模板系统基于代码生成,并要求所有includeextend指令都使用常量,因此代码可以生成一次。

通常,Tornado模板的语义与常规python代码类似。 module Template指令就像调用另一个模板文件一样,就像常规的python函数一样,函数没有(干净的)方式来查看调用它的函数中定义的变量。

相反,您应该将参数作为单个对象传递。使用render致电self.base.render('site.html', argv=site_argv),然后您可以使用{% module Template(template, **argv) %}