将用户名称存储在Google App Engine上,而不是每次都调用get_current_user?

时间:2010-11-09 00:39:57

标签: python google-app-engine

我有一个Google App Engine网站,其中有多个页面使用模板呈现。我希望在每个页面的标题上都有hello, user!类型的问候语。我可以在每个处理程序上调用users.get_current_user().nickname()(或类似的东西)并将其添加到模板值字典中,但我想知道是否有更简洁的方法来执行它 - 也许直接从模板中调用它?

1 个答案:

答案 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的源代码。