8.30(day27)选课系统
需求分析
三个视图层的功能
管理员:注册,登录,创建学校,老师,课程
教师层:登录,查看课程,选择课程,查看学生,修改成绩
学生层:登录,注册,选择学校,选择课程,查看成绩
整体思路
run文件,运行程序
conf,添加路径
core,视图层,admin等三个视图层,src,有run来调用
db,数据层,db_handler,定义两个函数,保存和读取,文件格式为pickle, models,存放类,调用db_handler内的方法,
interface,admin等三个接口层,与三个视图层和数据层交互, common_interface,公共接口,三个视图层都有可以调用
lib,装饰器,添加在三个视图层中需要登录才能使用的功能上面
创建文件夹及文件顺序
run(运行文件)---(core)src(选择功能,q退出,while循环,可以调用到三个视图层的功能字典)
---(core)admin,student,teacher(此时可以编写是三个视图层的功能字典,进而搭建整个视图层,
即定义各个函数,编写与用户交互的那部分)
---(core)admin(开始写功能,(登录,注册)ATM类似,admin---admin_interface,这个时候需要开始调用数据了)
---(db)models(封装类,需要调用db_handler内的方法)---(db)db_handler(编写db_handler文件,主要两个函数,查询,保存,格式为pickle,这个时候发现需要获取目录,先定义两个函数)
---(conf)settings(编写配置文件)---(db)db_handler(编写select,save方法)
---(core)admin(创建学校等功能,这个时候需要去写装饰器,同时models中出现代码冗余,可以定义一个父类)
---(lib)common(写装饰器,添加在部分功能呢上面)
---(开始写全部管理功能)
注意事项:如果input的判断条件不完善,使用字典的get方法,['k']不存在会报错,get不存在只会返回None
os.path.isdir():只判断文件夹是否存在