目录结构
代码示例
index.py
from 学生管理系统 import file_manager, model,tool,student_manage
def login():
# 读取文件,看文件是否有数据,判断输入的用户名是否被注册过
teacher = file_manager.read_json('teacher.json',{
})
account = input('请输入用户名:')
if account not in teacher:
print('登陆失败,该账号没有注册')
return
#输入密码,对密码进行校验
password = input('请输入密码:')
if teacher[account] == tool.encrypt_password(password):
print('登陆成功')
student_manage.account = account
student_manage.show_manage()
else:
print('密码错误,登陆失败')
# teacher = {} # 定义9行,此行作废
def register():
# 读取文件,查看文件里是否有数据,如果没有数据,则默认teacher是一个字典 ,此处替代第7行代码
teacher = file_manager.read_json('teacher.json',{
})
print(teacher)
# 输入用户名,密码,并进行校验
while True:
account = input('请输入用户名(3~9位):')
if not 3 <= len(account) <= 9:
print('用户名长度要求3~9位,请重新输入:')
elif account in teacher:
print('该账号已经注册过,请重新注册')
else:
break
while True:
password = input('请输入密码(6~12位):')
if not 6 <= len(password) <= 12:
print('密码长度要求6~12位,请重新输入:')
else:
break
# 将用户名密码写入到字典中,再将字典写入到teacher.json文件中
# teacher[account] = password
# print(teacher)
# file_manager.write_file('teacher.json.txt',teacher)
# 将用户名密码写入到对象中,再将对象写入到teacher.json文件中
t = model.Teacher(account,password)
teacher[t.account] = t.password
file_manager.write_file('teacher.json',teacher)
def start():
content = file_manager.read_file('welcome.txt')
while True:
operater = input(content + '请选择(1-3):')
if operater == '1':
login()
elif operater == '2':
register()
elif operater == '3':
print('退出')
break # 把死循环停止
# exit(0) # 退出整个程序
# sys.exit(0) # 退出整个程序
else:
print('输入有误')
if __name__ == '__main__':
start()
model.py
from 学生管理系统 import tool
class Teacher(object):
def __init__(self,account,password):
self.account = account
self.password = tool.encrypt_password(password)
student_manage.py
from 学生管理系统 import file_manager
account = ''
def show_manage():
content = file_manager.read_file('student_page.txt') % account
while True:
# print(content)
# input('请选择(1~5):')
input(content+'请选择(1~5):')
tool.py
import hashlib
def encrypt_password(password, x='moreencrypt'):
h = hashlib.sha256()
h.update(password.encode('utf8'))
h.update(x.encode('utf8'))
return h.hexdigest()
file_manager.py
base_dir = './file/'
def read_file(file_name):
try:
with open(base_dir + file_name, 'r', encoding = 'utf8') as file:
content = file.read()
return content
except FileNotFoundError:
print('文件未找到')
def write_file(file_name,data):
with open(base_dir + file_name,'w',encoding = 'utf8') as file:
import json
json.dump(data,file)
def read_json(file_name,default_data):
try:
with open(base_dir + file_name,'r',encoding = 'utf8') as file:
import json
return json.load(file)
except FileNotFoundError:
print('文件未找到')
return default_data
student_page.txt
==============================================
欢迎%s进入学生管理页面
❤ 1. 添加学生
❤ 2. 查看学生
❤ 3. 修改学生信息
❤ 4. 删除学生
❤ 5. 返回
==============================================
teacher.json
{
"qqq": "81a7c1e99a3a617ff703b957d66d83c030f797d4a3f4163c1444acdec479c298", "11111": "db275e07a8b8bd56204b68c69e0ff58cd3bcdc5dfc9f2acf7659ee6d8266c138", "lianhong": "5552a84bf6c0039ff15afc6930db24dd8f4c11cfdf6b88d2618ee9355d2a7ad3", "hello": "0996a30a8053a8db51a0fd118e6aa1b0a88223d7ab30a0826f355a9bde14c7a3", "ninini": "504d89e7be72400d89afd4d7524c7346c2406543430dd6e5257a6337938d4484", "lll": "2c801224c99732600ee049538cef10307c428527972b6f0cfe38f5848d29a619", "li9": "81a7c1e99a3a617ff703b957d66d83c030f797d4a3f4163c1444acdec479c298", "333": "57b0f94e7f2ad6fee54337f550968438e51fc9b67501ed4e4a7cb40e0213a26a", "123": "8d22a1bc40a79555c87e3786604ba8e6000845029e692c9cb761d56704bf9e1f", "456": "0fae0b647866dda792b15dcfcedc723fd736dc16eca4dfad0699f91d97d5a4c6", "iii": "504d89e7be72400d89afd4d7524c7346c2406543430dd6e5257a6337938d4484", "xiaoli": "e0a03e11ab5f841f7bf6cf8d997d22b31b0f16917976e3d5d5a9a0db2cd96755", "qqqq": "ac1b18813a30a62b6ed9c0b8f5996840d70b5432372aef0df903e18393c2c00a"}
welcome.txt
==============================================
** 欢迎来到学生管理系统 **
♦️ 1. 登 陆
♦️ 2. 注 册
♦️ 3. 退 出
==============================================