App Engine 用户详细信息到模板
app engine user details into template
我目前正在 google appengine 和 python 中编码。我正在处理用户方面的事情。目前,如果用户经过身份验证,我将通过该用户的登录或注销 URL 以及一些唯一的 URL。
我似乎在为我创建的每个新请求处理程序重复代码。你能给我一些关于如何更有效地做到这一点的建议吗?
谢谢您的帮助。
卡里姆
如果您在处理程序中重复代码,请创建一个 BaseHandler。
使用 webapp2 和 jinja 的 BaseHandler 示例。更多here关于覆盖调度
class BaseHandler(webapp2.RequestHandler):
def dispatch(self):
""" override webapp2 dispatch """
if user_ok():
super(BaseHandler, self).dispatch()
else:
self.abort(401)
@webapp2.cached_property
def jinja2(self):
return jinja2.get_jinja2(app=self.app)
def render_template(self, template, **template_args):
self.response.write(self.jinja2.render_template(template, **template_args))
class YourHandler1(BaseHandler):
@login_required
def get(self):
....
我目前正在 google appengine 和 python 中编码。我正在处理用户方面的事情。目前,如果用户经过身份验证,我将通过该用户的登录或注销 URL 以及一些唯一的 URL。 我似乎在为我创建的每个新请求处理程序重复代码。你能给我一些关于如何更有效地做到这一点的建议吗? 谢谢您的帮助。
卡里姆
如果您在处理程序中重复代码,请创建一个 BaseHandler。
使用 webapp2 和 jinja 的 BaseHandler 示例。更多here关于覆盖调度
class BaseHandler(webapp2.RequestHandler):
def dispatch(self):
""" override webapp2 dispatch """
if user_ok():
super(BaseHandler, self).dispatch()
else:
self.abort(401)
@webapp2.cached_property
def jinja2(self):
return jinja2.get_jinja2(app=self.app)
def render_template(self, template, **template_args):
self.response.write(self.jinja2.render_template(template, **template_args))
class YourHandler1(BaseHandler):
@login_required
def get(self):
....