80行代码实现简易登录管理系统(二)
#------------------------------------------------------------------------------------------------------------------------------------
接着上次登录管理系统(一),这次添加代码部分:数据保存、调用,完整实现数据存储,保证数据不丢失,
需要原代码的小伙伴可以告诉我......
#------------------------------------------------------------------------------------------------------------------------------------
设计实现的功能:
1.实现用户登录
2.实现用户注册
3.实现修改密码
4.实现关闭系统
5.数据保存/调用(添加)
#-------------------------------------------------------------------------------
设计思路、方法:
1.使用字典(增删改查),实现数据的添加、删除、更改、查询
2.使用文件写入读取:实现数据的存储、读取,保证系统数据不丢失
#--------------------------------------------------------------------------------------------------------------------------------------
代码:
times =3
data_lib = {} #数据库
def users_login(times): #用户登录
active_login = True
while active_login:
usersname = input("请输入账号(用户名):")
if usersname=='q':
break
if usersname not in data_lib:
print("用户名不存在!,请重新输入!")
else:
while times:
password = int(input("请输入密码:"))
pwd_lib = data_lib.get(usersname) #根据输入账号查询密码
if password ==pwd_lib:
print("欢迎你进入本系统")
times = 3
active_login=False
break
else:
times -= 1
if times == 0:
print("你密码输入3次错误,次数用完,无法再登录")
active_login = False
break
else:
print("账号/密码错误!,你还剩" + str(times) + "次输入次数")
def uersname_set(): #用户注册
usersname_set = input("请输入账号(用户名8位以内):")
password_set = (input("请输入密码(8位以内):"))
if usersname_set and password_set:
data_lib[usersname_set]=int(password_set) #添加账号密码--账号库
print(data_lib)
print("注册成功!")
print("账号:"+usersname_set+ " "+ "密码:" + password_set)
else:
print("账号/密码不能为空")
def modify_password(): #修改密码
modify_flag = True
while modify_flag:
usersname = input("请输入账号(用户名):")
if usersname not in data_lib:
print("用户名不存在!,请重新输入!")
else:
while True:
password = int(input("请输入密码:"))
pwd_lib = data_lib.get(usersname) # 根据输入账号查询密码
if password == pwd_lib:
modify_active = True
while modify_active:
New_password1 = int(input("请输入新密码:"))
New_password2 = int(input("请输入再次新密码:"))
if New_password1 == New_password2:
update_password={usersname:New_password2} #创建字典元素:键重新赋值
data_lib.update(update_password) #添加字典元素:更新键值
print(data_lib) #测试显示:账号密码库
print("密码设置成功!")
modify_flag = False
break
else:
print("设置密码两次输入不一致,请重新输入:")
break
else:
print("账号/密码错误!")
#break
import json
filename = 'data_lib.json'
with open(filename) as f:
data_lib=json.load(f)
#-----------------------------------------
print(data_lib) #测试:查看数据库
print(type(data_lib['zhangyang'])) #现在设置字典值为:int型
print(type(data_lib['lichen']))
#------------------------------------------------
while True:
print("----欢迎使用本系统-----")
print("1.用户登录")
print("2.用户注册")
print("3.修改密码")
print("4.关闭系统")
print("----------------------")
flag_sever = int(input("请选择服务项目:"))
if flag_sever == 1:
users_login(times)
if flag_sever == 2:
uersname_set()
if flag_sever == 3:
modify_password()
if flag_sever ==4:
filename = 'data_lib.json'
with open(filename, 'w') as f: #write file data
json.dump(data_lib, f)
exit()
执行结果:
原本数据库文件的内容:

1.登录

2.注册

3.修改密码

4.修改密码后,重新登录

5.使用注册的账户,登录

6.退出系统
退出系统,账号保存,数据库保存的全部账号:


浙公网安备 33010602011771号