python装饰器加上验证功能

模拟一个后台登陆页面

验证用户登陆

定义用户列表,然后和用户输入账号密码进行对比,如果正确,则让用户名登陆并且执行函数

反之则提醒用户账号和密码错误

''' 给装饰器加上验证功能 '''

#定义一个用户列表

user_list = [

    {'user':'wentian', 'passwd':'shufeng1121'},

    {'user':'time', 'passwd':'shufeng'}

]

#定义一个状态信息

cruuent_dic = {'username':None, 'login':False}

#装饰器

def  text(func):

    def  wp(*args, **kwargs):#接收传递过来的所有参数

    #判断当前是否是登陆状态,如果是登陆状态则直接执行函数,不是则让用户输入账号和密码

        if cruuent_dic['username'] and cruuent_dic['login']:

            res = func(*args, **kwargs)#当前是登陆状态执行此代码

            return res

        username = input('请输入用户名:')

        password = input('请输入密码:')

        #循环取出用户名列表中的信息

        for user_dic in user_list:

            #判断账号密码是否正确,正确则登陆成功,代码向下执行

            if username == user_dic['user'] and password == user_dic['passwd']:

            #登陆成功,记录当前的登陆信息

            cruuent_dic['username'] = username

            cruuent_dic['login'] = True

            #执行函数

            res = func(*args, **kwargs)

            return res

    else: print('用户名或密码错误!')

    return wp

@text#调用装饰器

def  index(name):

    print('主页%s' %name)


@text

def gouwu(dq, yp):

    print('购物车有%s,%s' %(dq, yp))


index('你好')#调用函数,并且传参

gouwu('单人', '三件套') #调用函数,并且传参

你可能感兴趣的:(python装饰器加上验证功能)