我有一个处理程序类和一个主类。并且处理程序查找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")
答案 0 :(得分:0)
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()