我有一个Google App Engine网站,其中有多个页面使用模板呈现。我希望在每个页面的标题上都有hello, user!
类型的问候语。我可以在每个处理程序上调用users.get_current_user().nickname()
(或类似的东西)并将其添加到模板值字典中,但我想知道是否有更简洁的方法来执行它 - 也许直接从模板中调用它?
答案 0 :(得分:1)
我不知道从模板中访问它的内置方法,但我同意你的意见,我当然不希望在每个处理程序中重新输入代码。
如果你的所有视图都是一个主处理程序的子视图,那么你可以将代码放在主处理程序中并完成它,例如:
class BaseHandler(webapp.RequestHandler):
def __init__(self):
pass
def render(self, template_filename, template_args):
nick = users.get_current_user().nickname()
template_args['nick'] = nick
self.response.out.write(
template.render(
self.template_path(template_filename), template_args))
full example的源代码。