在web2py中使用@auth装饰器

时间:2012-07-08 02:05:15

标签: web2py

对于我的应用程序的许多功能,它需要使用

@auth.requires_login()

这是否意味着所有与模型中定义的Auth对象相关的代码必须才能运行,以便将请求提供给需要装饰器的操作?如果没有,我应该如何重新考虑代码,以最大限度地减少不必要的Auth代码部分执行?

1 个答案:

答案 0 :(得分:1)

仅检查用户是否已登录并不一定要求运行所有Auth代码。您必须实例化Auth对象,但不必运行auth.define_tables()(定义所有Auth表)。请注意,如果您未定义Auth表,则auth.navbar()帮助程序函数将无法正常工作,因为它尝试引用auth_user表的属性。作为一种变通方法,您可以创建自定义导航栏功能(无论如何您可能想要这样做),或者至少定义一个表。