# 作业需求
选课系统:
角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供两个角色接口
7.1 学员视图, 可以注册, 交学费, 选择班级,
7.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级,
查看班级学员列表 , 修改所管理的学员的成绩
7.3 管理视图,创建讲师, 创建班级,创建课程
程序结构:
启动文件start.py

import os,sys BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # print(BASE_DIR) sys.path.append(BASE_DIR) from src.services import admin_service from src.services import teacher_service from src.services import student_service from src.services import initialize_service # BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # print(BASE_DIR) def show_role(): msg=""" '0':初始化 '1':管理员 '2':老师 '3':学生 """ print(msg) def main(): choice_dict={ '0':initialize_service.main, '1':admin_service.main, '2':teacher_service.main, '3':student_service.main } show_role() while True: choice = input("请输入角色:").strip() if choice not in choice_dict: print("输入有误") continue else: choice_dict[choice]() if __name__ == '__main__': main()
配置文件settings.py

import os #选课系统变量 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # print(BASE_DIR) ADMIN_DB = os.path.join(BASE_DIR,"db","admin") SCHOOL_DB = os.path.join(BASE_DIR,"db","school") TEACHER_DB = os.path.join(BASE_DIR,"db","teacher") COURSE_DB = os.path.join(BASE_DIR,"db","course") COURSE_TO_TEACHER_DB = os.path.join(BASE_DIR,"db","course_to_teacher") CLASSES_DB = os.path.join(BASE_DIR,"db","classes") STUDENT_DB = os.path.join(BASE_DIR,"db","student")
common.py中保存加密函数

import uuid,hashlib,time def create_uuid(): return str(uuid.uuid1()) def create_md5(): m=hashlib.md5() m.update(bytes(str(time.time()),encoding="utf-8")) return m.hexdigest() if __name__ == "__main__": print(create_uuid()) print(create_md5())
initialize_service.py初始化admin

import getpass from src.moudles import Admin def initialize(): try: user = input("输入初始化用户名:").strip() pwd = input("输入初始化密码:").strip() #pwd = getpass.getpass("输入初始化密码:").strip() obj = Admin(user,pwd) # print('123344') obj.save() # print('12') return True except Exception as e: print(str(e)) def main(): show=""" 1.初始化管理员账户 """ choice_dict = { '1':initialize } while True: print(show) choice = input("请输入操作选项:").strip() if choice not in choice_dict: print('