欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Python装饰器的应用---登录认证

时间:2023-05-20

"""需求:登录CSDN社区成功后,才可以访问"博客"、"课程"、"问答"等页面已有账户文件 csdn 及账户密码:albert|123456don|456jack|789"""# 记录用户登录状态的字典user_status = {'usname': None, 'status': False}def get_userpwd(): user_dict = {} with open('csdn', encoding='utf-8', mode='r') as f: for line in f: user, pwd = line.strip().split('|') user_dict[user] = pwd return user_dictdef csdn_login(): userpwd_dict = get_userpwd() count = 1 while count < 4: username = input('请输入您的用户名:').strip() password = input('请输入您的密码: ').strip() if username in userpwd_dict and userpwd_dict[username] == password: print(f'登录成功,欢迎您{username}') user_status['usname'] = username user_status['status'] = True return True else: print(f'对不起,您输入的用户名或者密码错误,剩余机会{3-count}次!') count += 1 return False# 装饰器,只有登录成功后,才可以进行访问def csdn_decorator(func): def inner(*args, **kwargs): if user_status['status']: ret = func(*args, **kwargs) return ret else: if csdn_login(): ret = func(*args, **kwargs) return ret return inner@csdn_decoratordef csdn_blog(): print('欢迎访问“博客”首页!!!')@csdn_decoratordef csdn_course(): print('欢迎访问“课程”首页!!!')@csdn_decoratordef csdn_quest_ans(): print('欢迎访问“问答”首页!!!')# 登录成功后,才可以访问博客首页csdn_blog()# 登录成功后,才可以访问课程首页csdn_course()# 登录成功后,才可以访问课程首页csdn_quest_ans()

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。