python使用装饰器验证登录状态

1、访问页面时模拟网站登录验证

2、提供2个登录通道

3、指定具体页面使用特定的登录通道,登录登录后保留登录状态,切换到其他页面时检测登录状态

4、不同通道登录账号密码用文件保存,读取之后进行验证登录(后期更换为数据库读取)

 

login_status_jingdong=False
login_status_weixin=False
def login(login_channel):
	def checklogin(func):
		def foo():
			global login_status_jingdong
			global login_status_weixin
			if login_channel == 'jingdong':
				if login_status_jingdong == False:
					print("请输入京东账号登录")
					f=open('e:/京东login/jingdong.txt','r',encoding='utf8')
					xtmp=eval(f.read())
					f.close()
					userlist=[]
					for key in xtmp:
						name=key
						userlist.append(name)
					n=0
					while n<4:
						inp_user=input('输入账号:')
						if inp_user in userlist:
							inp_passwd=input('输入密码:')
							if inp_passwd == xtmp[inp_user]:
								print ('登录成功')
								login_status_jingdong = True
								break
							else:
								print ('账号、密码错误请重新输入')
								n=n+1
								print(n)
						else:
							print('账号不存在!')
					else:
						print("密码错误次数过多!")

					func()
				else:
					func()	
			elif login_channel == 'weixin':
				if login_status_weixin == False:
					print("请输入微信账号登录")
					f=open('e:/京东login/weixin.txt','r',encoding='utf8')
					xtmp=eval(f.read())
					f.close()
					userlist=[]
					for key in xtmp:
						name=key
						userlist.append(name)
					n=0
					while n<4:
						inp_user=input('输入账号:')
						if inp_user in userlist:
							inp_passwd=input('输入密码:')
							if inp_passwd == xtmp[inp_user]:
								print ('登录成功')
								login_status_weixin = True
								break
							else:
								print ('账号、密码错误请重新输入')
								n=n+1
								print(n)
						else:
							print('账号不存在!')
					else:
						print("密码错误次数过多!")
					func()
				else:
					func()
		return foo
	return checklogin


# menu={'1':'首页','2':'金融','3':'图书'}
# for i in menu:
# 	print(i,menu[i])

@login("jingdong")
def home():
	print ("打印京东首页页面")

@login("weixin")
def finance():
	print ("打印京东金融页面")

@login("weixin")
def book():
	print("打印京东图书页面")

while True:
	menu={'1':'首页','2':'金融','3':'图书','4':'退出'}
	for i in menu:
		print(i,menu[i])
	page=input('请输入您要访问的页面:')
	if page == '1':
		home()
	elif page == '2':
		finance()
	elif page == '3':
		book()
	elif page == '4':
		print ('退出账号')
		break
	else:
		print ('访问的页面不存在')

		

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值