使用 webpy 的 Jinja TemplateNotFound 错误
Jinja TemplateNotFound error using webpy
我有一个处理程序 class 和一个主要程序 class。并且处理程序查找 t.html 而不是查找 hello.html。当我打印 t
值时,我得到 hello
并且当我在模板文件夹中插入 t.html
文件时,它是有效的。
这行 render.t(params)
.
似乎有问题
class Handler():
def write(self, string):
return string
def render_str(self, template, **params):
t = template
print t # prints correclt -> hello
return render.t(params) # Looks for t.html instead of hello.html
def render(self, template, **kw):
print template
return self.write(self.render_str(template, **kw))
class MainPage(Handler):
def GET(self):
return self.render("hello")
render.t
与名为 t
的单独变量无关。它与 render['t']
更相似,但您想要 render[t]
。
这取决于您的 render
是如何定义的(您的代码中未显示)。您可以将它子类化并添加一个 __getitem__
方法,该方法只需调用 __getattr__
例如,使用 web.py
模板渲染(相对于 jinja)
class my_render(web.template.render):
def __getitem__(self, name):
return self.__getattr__(name)
>>> render['t']() == render.t()
>>> t = 'home.html'
>>> render[t]() == render.home()
我有一个处理程序 class 和一个主要程序 class。并且处理程序查找 t.html 而不是查找 hello.html。当我打印 t
值时,我得到 hello
并且当我在模板文件夹中插入 t.html
文件时,它是有效的。
这行 render.t(params)
.
class Handler():
def write(self, string):
return string
def render_str(self, template, **params):
t = template
print t # prints correclt -> hello
return render.t(params) # Looks for t.html instead of hello.html
def render(self, template, **kw):
print template
return self.write(self.render_str(template, **kw))
class MainPage(Handler):
def GET(self):
return self.render("hello")
render.t
与名为 t
的单独变量无关。它与 render['t']
更相似,但您想要 render[t]
。
这取决于您的 render
是如何定义的(您的代码中未显示)。您可以将它子类化并添加一个 __getitem__
方法,该方法只需调用 __getattr__
例如,使用 web.py
模板渲染(相对于 jinja)
class my_render(web.template.render):
def __getitem__(self, name):
return self.__getattr__(name)
>>> render['t']() == render.t()
>>> t = 'home.html'
>>> render[t]() == render.home()