编写装饰器,为多个函数加上认证的功能(用户的…
2019-07-24 09:11:34来源:博客园 阅读 ()
小猿圈作业:
-
编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
- tip:account文件的格式
-
1 dadada 123456 2 da da 3 da1 da 4 da2 1234 5 da3 1111
1 # @Time :2019/7/2 21:38 2 3 ''' 4 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), 5 要求登录成功一次,后续的函数都无需再输入用户名和密码 6 ''' 7 account_status = False #用于判断是否已经通过验证 8 9 def login(func): 10 account_dict = {} #账号密码验证用的,可以换其他方式验证 账号当做key,密码当做value 11 def inner(): 12 global account_status 13 14 if not account_status : 15 with open('account',encoding='utf-8') as f: 16 account_data = f.read().split('\n') 17 for item in account_data: 18 user, pwd= item.split() 19 account_dict.setdefault(user,pwd) 20 21 username = input("username>>>: ").strip() 22 # username = 'da' 23 password = input("password>>>: ").strip() 24 # password = 'da' 25 #验证输入的账号是否在account_dict已存在 26 #用.__contains__方法 是为了输入的用户名不存在,然后报 key不存在的错误 27 if account_dict.__contains__(username) and account_dict[username] == password: 28 account_status = True #修改用户登录状态 29 print("登陆中~~~".center(50)) 30 func()#执行传入的函数 31 else: 32 print('账号密码不匹配') 33 34 else: 35 print('已通过验证'.center(50)) 36 func() 37 38 return inner 39 40 @login 41 def movies(): 42 print('--电影专区--') 43 44 @login 45 def articles(): 46 print('--小说专区--') 47 48 @login 49 def music(): 50 print('--歌曲专区--') 51 52 movies() 53 articles() 54 music()
原文链接:https://www.cnblogs.com/Demo-simple/p/11123736.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python之装饰器笔记 2019-08-13
- Python学习日记(九) 装饰器函数 2019-08-13
- 列表和元组 2019-08-13
- tcp服务端无线为多个客户端服务 2019-07-24
- Python装饰器与闭包 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash