0

我正在一个 web2py 应用程序中工作,我需要在模块中访问当前用户,所以是否有可能访问 web2py 模块中的当前用户,是的,那么我该如何访问它?

谢谢

4

1 回答 1

1

一种选择是使用线程本地current对象。假设您使用对象的标准名称authAuth在模块中,您可以执行以下操作:

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
于 2017-02-17T21:06:08.740 回答