一、需求:
1、可以注册管理员账号,管理员账号可以创建老师和课程
2、学生可以注册和登陆,学生可以从课程列表选课,可以进行上课登记查看
二、代码
1、文件目录
bin 存放可执行文件
config 存放可配置文件
db 存放数据文件
lib 存放实现类
目录结构如图:
2、admin.py 中的代码
#!usr/bin/env python # -*- coding:utf-8 -*- """admin注册登录,以及用admin账号创建老师和课程""" import pickle import os import sys sys.path.append(os.path.dirname(os.path.dirname(__file__))) #import time from config import setting from lib.models import * #导入所有类 def login(): """用户登陆""" username = input("请输入用户名:") pwd = input('请输入密码:') if os.path.exists(os.path.join(setting.ADMIN_PATH ,username)): with open(os.path.join(setting.ADMIN_PATH ,username), 'rb') as f: admin_obj = pickle.load(f) if admin_obj.login(username, pwd): print('登陆成功!') return admin_obj else: print('密码错误!') else: print('账号不存在!') exit() def regester(): """用户注册""" username = input("请输入用户名:") pwd = input('请输入密码:') adm = Admin() adm.regester(username, pwd) def creat_teacher(admin_obj): li_teacher = [] while True: name = input('请输入要创建老师的名字,Q退出:') if name == "Q": break age = input('请输入要创建老师的年龄:') obj = Teacher(name,age,admin_obj) li_teacher.append(obj) if os.path.exists(setting.TEACHER_PATH): read_teacher = pickle.load(open(setting.TEACHER_PATH,'rb')) li_teacher.extend(read_teacher) pickle.dump(li_teacher,open(setting.TEACHER_PATH,'wb')) #print(li_teacher) def creat_course(admin_obj): print('老师信息:') teacher_list = pickle.load(open(setting.TEACHER_PATH,'rb')) for num,item in enumerate(teacher_list,1): print(num, item.name, item.age, item.creat_time, item.admin_obj.username) course_li = [] while True: course_name = input('请输入课程名(Q退出):') if course_name == "Q": break cost = input('请输入课时费:') num = input('请选择老师的序号:') course_obj = Course(course_name, cost, teacher_list[int(num)-1], admin_obj) course_li.append(course_obj) if os.path.exists(setting.COURSE_PATH): read_course = pickle.load(open(setting.COURSE_PATH,'rb')) course_li.extend(read_course) pickle.dump(course_li, open(setting.COURSE_PATH,'wb')) def main(): isregsterOrlogin = input('登陆请按1,注册请按2\n') if isregsterOrlogin == '1': admin_obj = login() #登陆 creat_teacher(admin_obj) #创建老师,写进文件teacher/teacher creat_course(admin_obj) #创建课程 elif isregsterOrlogin == '2': regester() #注册 if __name__ == '__main__': main()