闲来无事,学习一下python
AI里搜索:python做一个登录系统json添加删除读取修改
以下是过程和结果:
'''
@Python学习
@环境,window10,Python 3.10.6,pip 24.0
@一个简单的登录系统演示了如何使用Python处理JSON数据来管理用户信息
@实现登录系统管理用户的基本功能:增删查改登录
@根据AI生成的代码,修改成自己想要的代码,效率确实提高了
@Author:MIKE <1515544573@qq.com>
@2024-5-27
'''
import json
import getpass
import hashlib
#配置信息
USER_DATA_FILE = 'user.json'
def has_password(password):
return hashlib.sha256(password.encode('utf-8')).hexdigest()
# 用户信息结构体
class User:
def __init__(self, id, username, password):
self.id = id
self.username = username
self.password = has_password(password)
# 登录系统类
class LoginSystem:
def __init__(self, filepath=USER_DATA_FILE):
self.filepath = filepath
self.load_users()
def load_users(self):
try:
with open(self.filepath,'r') as file:
self.users = {user['id']: user for user in json.load(file)}
except FileNotFoundError:
self.users = {}
# 添加用户
def add_user(self, user):
#print(user)
#return False
if user.id in self.users:
print(f"用户ID {user.id} 已存在。")
else:
self.users[user.id] = user.__dict__
self.save_users()
print(f"用户 {user.username} 添加成功!")
# 删除用户
def delete_user(self, user_id):
try:
if user_id in self.users:
self.users.pop(user_id)
self.save_users()
print(f"用户ID {user_id} 已被删除!")
return True
else:
print(f"用户ID {user_id} 不存在")
return False
except FileNotFoundError:
print(f"用户ID {user_id} 不存在。")
return False
# 保存用户信息
def save_users(self):
with open(self.filepath,'w') as file:
json.dump(list(self.users.values()),file)
def change_password(self, user_id, new_password):
if user_id in self.users:
self.users[user_id]['password'] = has_password(new_password)
self.save_users()
print(f"用户ID {user_id} 的密码已修改")
else:
print(f"用户ID {user_id} 不存在")
def show_users(self):
print(self.users)
return False
# 用户登录
def login(self, username, password):
try:
for user in self.users.values():
if user['username'] == username and user['password'] == has_password(password):
print("登录成功!")
return True
print("用户名或者密码错误。")
return False
except FileNotFoundError:
print("用户不存在,请先注册。")
return False
#主菜单
def main_menu():
# 使用示例
system = LoginSystem()
# 添加用户
# 登录验证
# 修改密码
# 删除用户
# 查看用户
print("1. 添加用户")
print("2. 登录验证")
print("3. 修改密码")
print("4. 删除用户")
print("5. 查看用户")
choice = input("请选择(1/2/3/4/5):")
if choice == '1':
user_id = input("用户ID:")
username = input("用户名:")
password = getpass.getpass("密码:")
# 添加用户
system.add_user(User(id=user_id, username=username, password=password))
elif choice == '2':
username = input("用户名:")
password = getpass.getpass("密码:")
# 登录验证
system.login(username,password)
elif choice == '3':
user_id = input("用户ID:")
password = input("请输入新密码:")
# 修改密码
system.change_password(user_id,password)
elif choice == '4':
user_id = input("请输入要删除的用户ID:")
choice = input("请想要删除账号吗?(y/N)")
if choice.lower() == 'y':
# 删除用户
system.delete_user(user_id)
else:
return False
elif choice == '5':
system.show_users()
else:
print("无效选项,退出。")
#执行
if __name__ == "__main__":
main_menu()
'''
import json
# 用户信息结构体
class User:
def __init__(self, id, username, password):
self.id = id
self.username = username
self.password = password
# 登录系统类
class LoginSystem:
def __init__(self, filepath='users.json'):
self.filepath = filepath
self.load_users()
# 加载用户信息
def load_users(self):
try:
with open(self.filepath, 'r') as file:
self.users = {user['id']: user for user in json.load(file)}
except FileNotFoundError:
self.users = {}
# 添加用户
def add_user(self, user):
if user.id in self.users:
print(f"用户ID {user.id} 已存在。")
else:
self.users[user.id] = user.__dict__
self.save_users()
print(f"用户 {user.username} 添加成功。")
# 删除用户
def delete_user(self, user_id):
if user_id in self.users:
self.users.pop(user_id)
self.save_users()
print(f"用户ID {user_id} 已删除。")
else:
print(f"用户ID {user_id} 不存在。")
# 保存用户信息
def save_users(self):
with open(self.filepath, 'w') as file:
json.dump(list(self.users.values()), file)
# 修改用户密码
def change_password(self, user_id, new_password):
if user_id in self.users:
self.users[user_id]['password'] = new_password
self.save_users()
print(f"用户ID {user_id} 的密码已修改。")
else:
print(f"用户ID {user_id} 不存在。")
# 登录验证
def login(self, username, password):
for user in self.users.values():
if user['username'] == username and user['password'] == password:
print("登录成功。")
return True
print("用户名或密码错误。")
return False
# 使用示例
system = LoginSystem()
# 添加用户
system.add_user(User(id='001', username='user1', password='pass1'))
# 登录验证
system.login('user1', 'pass1')
# 修改密码
system.change_password('001', 'new_pass1')
# 删除用户
system.delete_user('001')
在这个示例中,我们定义了一个User类来表示用户信息,以及一个LoginSystem类来管理用户的添加、删除、读取和修改。用户信息以JSON格式存储在文件中,使得系统重启后用户数据仍然保留。这个简单的登录系统演示了如何使用Python处理JSON数据来管理用户信息。
提示:AI自动生成,仅供参考
python做一个登录系统json添加删除读取修改
'''
以上代码登录系统的文件保存在user.py,用户信息存储在user.json中,两个文件在同一个目录。思考:如果是多个文件,多个类,怎么调用,用数据库存储要如何实现,就像一个cms系统那样,下一步再研究