模拟一个后台登陆页面
验证用户登陆
定义用户列表,然后和用户输入账号密码进行对比,如果正确,则让用户名登陆并且执行函数
反之则提醒用户账号和密码错误
''' 给装饰器加上验证功能 '''
#定义一个用户列表
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('单人', '三件套') #调用函数,并且传参