1. 整理今天的博客,写课上代码,整理流程图。
2. 写一个函数完成三次登陆功能:
- 用户的用户名密码从一个文件register中取出。
- register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行。
- 完成三次验证,三次验证不成功则登录失败,登录失败返回False。
- 登陆成功返回True。
echo 'long|123' > register
def Wrapper(auth_type):
def Outer(func_name):
with open('register',mode='r',encoding='utf-8') as file:
AccountDic = dict()
for line in file:
Key,Value = line.split('|')
AccountDic[Key] = Value.strip()
def LocalFile(*args,**kwargs):
print('以本地文件存储形式登陆')
if AccountDic.get(args[0]):
if AccountDic[args[0]] == args[1]:
print('登陆成功!')
return True
else:
print('登陆失败')
return False
if auth_type == 'filetype':
return LocalFile
return Outer
@Wrapper(auth_type='filetype')
def login(username,password):
print(f'你的用户名:{username},密码:{password}')
for i in range(3):
ret = login(input('Username:').strip(),input('Password:'.strip()))
if ret :break
3.再写一个函数完成注册功能:
- 用户输入用户名密码注册。
- 注册时要验证(文件regsiter中)用户名是否存在,如果存在则让其重新输入用户名,如果不存在,则注册成功。
- 注册成功后,将注册成功的用户名,密码写入regsiter文件,并以 | 隔开。
- 注册成功后,返回True,否则返回False。
def Regsiter(auth_type):
def Outer(func_name):
with open('register',mode='r',encoding='utf-8') as file:
AccountDic = dict()
for line in file:
Key,Value = line.split('|')
AccountDic[Key] = Value.strip()
def LocalFile(*args,**kwargs):
print('以本地文件存储形式登陆')
if AccountDic.get(args[0]):
print('用户名已经存在请重新输入用户名')
return False
else:
print('用户注册成功')
with open('register',mode='a',encoding='utf-8') as file:
file.write(f'{args[0]}|{args[1]}')
return True
if auth_type == 'filetype':
return LocalFile
return Outer
@Regsiter(auth_type='filetype')
def login(username,password):
print(f'你的用户名:{username},密码:{password}')
login(input('Username:').strip(),input('Password:'.strip()))
明日默写: