我正在CherryPy中编写一个Web应用程序。我已将其设置为使用OpenID身份验证,并且可以成功获取用户的ID /电子邮件地址。
我想设置它,以便每当页面加载时,它会检查用户是否已登录,如果是,则显示有关其登录的一些信息。
我认为,基本的工作流程应该是这样的:
显然,我可以在每个处理此问题的公共页面中包含代码(或装饰器)。但这似乎非常令人恼火。
我还可以在每个类中设置一个默认的index
方法,这样做然后使用(逐页)辅助方法来显示其余的内容。但是,对于除index
以外的偶然暴露方法,这似乎是一场噩梦。
所以,我希望如此:在CherryPy中有没有办法设置一些代码,以便在收到请求时运行?如果是这样,我可以使用它来设置它,以便当前会话始终包含我需要的所有信息。
或者,在cherrypy.expose
装饰器周围创建包装器是否安全,以便每个公开的页面也运行此代码?
或者,其中任何一个都失败了:我也愿意接受不同工作流程的建议。我以前没有写过这种系统,而且我总是乐于接受建议。
编辑:我在下面列出了如何完成我想要的答案。但是,如果有人有任何工作流程变更建议,我会很喜欢这个建议!谢谢大家。
答案 0 :(得分:2)
before_handler
挂钩。