我正在一个 web2py 应用程序中工作,我需要在模块中访问当前用户,所以是否有可能访问 web2py 模块中的当前用户,是的,那么我该如何访问它?
谢谢
我正在一个 web2py 应用程序中工作,我需要在模块中访问当前用户,所以是否有可能访问 web2py 模块中的当前用户,是的,那么我该如何访问它?
谢谢
一种选择是使用线程本地current对象。假设您使用对象的标准名称auth,Auth在模块中,您可以执行以下操作:
from gluon import current
def myfunction():
user = current.globalenv['auth'].user
您还可以将用户对象显式添加为current模型文件中的属性:
from gluon import current
current.auth_user = auth.user
然后在模块中,您可以访问current.auth_user.
如此处所述,您不应将current对象的属性分配给模块内的顶级变量或类属性(这是因为该current对象对于每个线程都是本地的,但此类分配只会在第一次导入模块时发生一次) .
另一种选择是简单地将auth对象从模块传递给您的函数或类。例如,在一个模块中:
def myfunction(auth):
user = auth.user