Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python权限修饰符_Python_Django_Decorator - Fatal编程技术网

Python权限修饰符

Python权限修饰符,python,django,decorator,Python,Django,Decorator,这是我第一次使用装潢师,我想展示这样的东西 import functools def checkUser(tag): def dec(f0): @functools.wraps(f0) def wrapper(userName, loggedinUser): if userName == loggedinUser: return "You are allowed to view this pag

这是我第一次使用装潢师,我想展示这样的东西

import functools

def checkUser(tag):
    def dec(f0):
        @functools.wraps(f0)
        def wrapper(userName, loggedinUser):

            if userName == loggedinUser:
                 return "You are allowed to view this page"
            else:
                 return "Error"
        return wrapper
    return dec

@checkUser
def test2(userName, loggedinUser):
    return userName, loggedinUser

print test2()

我很确定这不会奏效,这只是我的想法。我只是复制了这些代码并进行了编辑。我真的是个新手。

对于您给出的代码,如果您只想检查用户,那么您不需要使用decorator,为什么不直接比较它们呢?因为你想使用decorator检查权限。我想你可能想这样做:

import functools

def check_user(username, password):
    def dec(f):
        @functools.wraps(f)
        def wrapper(login_user, login_password):
            f(login_user, login_password)
            if username == login_user and password == login_password:
                 return "You are allowed to view this page"
            else:
                 return "Check your password and username"
        return wrapper
    return dec


@check_user('jhon', 'passwd')
def test2(login_user, login_password):
    print "hello, {0}".format(login_user)


print test2('jhon', 'foobar')
print test2('jhon', 'passwd')
输出应为:

hello, jhon
Check your password and username
hello, jhon
You are allowed to view this page

您可以看到,第一次输入错误的密码会给我们发出警告,但当我们输入正确的信息时,它会向我们显示成功消息。

您尝试过吗?也许它确实有用。没有尝试就没有办法知道。。。