import json
def init_info():
user_if = {
"egon":{"password":"123",'status':False,'timeout':0},
"alex":{"password":"456",'status':False,'timeout':0},
}
with open('user_info','w',encoding='utf-8') as f:
json.dump(user_if,f)
def read_info():
with open('user_info','r+',encoding='utf-8') as f:
print(json.load(f,encoding = 'utf-8'))
class User:
# user_dict = {}
def db(self):
'''
db方法:调用时打印当前用户信息和信息存储数据格式
:return:
'''
with open('user_info', 'r+', encoding='utf-8') as f:
user_info = json.load(f, encoding='utf-8')
for k, v in user_info.items():
print('username:%s -' % k, type(k),
'password:%s',[val for val in v.values()][0], type([val for val in v.values()][0]),
'status:%s',[val for val in v.values()][1], type([val for val in v.values()][1]),
'timeout:%s', [val for val in v.values()][2], type([val for val in v.values()][2]),
)
def login(self):
'''
登录
登录成功将状态(status)修改为True
密码输入错误三次将设置锁定时间(下次登录如果和当前时间比较大于10秒即不允许登录)
:return:
'''
count = 0
while count < 3:
username = input('请输入用户名>>>').strip()
password = input('请输入密码>>>').strip()
with open('user_info', 'r+', encoding='utf-8') as f:
user_info = json.load(f, encoding='utf-8')
user_name_list = []
for k in user_info.keys():
user_name_list.append(k)
if username in user_name_list and password == user_info.get(username)['password']:
user_info.get(username)['status'] = True
print('用户:%s 登陆成功' % user_info[username])
with open('user_info','w+',encoding='utf-8') as f1:
json.dump(user_info, f1)
break
else:
print('账号或密码错误,还有%s次尝试机会'% (3-(count+1)))
count += 1
def logout(self):
'''
退出将状态修改为False(退出要判断是否处于登录状态)
:return:
'''
pass
us = User()
us.db()
us.login()