1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3 """
4 管理员可操作的方法5 """
6 importos7 importsys8 sys.path.append(os.path.dirname(os.path.dirname(__file__)))9 importpickle10 importos11 from lib importmodels12 from config importsettings13 from lib.models importCourse14 from lib.models importTeacher15 from lib.models importAdmin16
17
18 defcreate_teacher(admin_obj):19 """
20 管理员创建老师21 :param admin_obj:22 :return:23 """
24 teacher_list =[]25 whileTrue:26 teacher_name = input("请输入老师的姓名:(q退出)")27 if teacher_name == "q":28 break
29 teacher_age = input("请输入老师的年龄:")30 obj =models.Teacher(teacher_name, teacher_age, admin_obj)31 teacher_list.append(obj)32 if os.path.exists("teacher_list"): #判断老师列表是否存在
33 exists_list = pickle.load(open(settings.TEACHER_DB_DIR, 'rb'))34 teacher_list.extend(exists_list)35 pickle.dump(teacher_list, open(settings.TEACHER_DB_DIR, 'wb'))36
37 defcreate_course(admin_obj):38 """
39 管理员创建课程40 :param admin_obj:41 :return:42 """
43 teacher_list = pickle.load(open(settings.TEACHER_DB_DIR, 'rb'))44 for num, item in enumerate(teacher_list, 1):45 print(num, item.name, item.age, item.create_time, item.create_admin.username)46 course_list =[]47 whileTrue:48 name = input("请输入课程名(q退出):")49 if name == "q":50 break
51 cost = input("请输入课时费:")52 num = input('请选择老师(序号):')53 obj = models.Course(name, cost, teacher_list[int(num) - 1], admin_obj)54 course_list.append(obj)55 if os.path.exists(settings.COURSE_DB_DIR): #判断课程列表是否存在
56 exists_list = pickle.load(open(settings.COURSE_DB_DIR, 'rb'))57 course_list.extend(exists_list)58 pickle.dump(course_list, open(settings.COURSE_DB_DIR, 'wb'))59
60 deflook_course():61 """
62 管理员查看课程表63 :return:64 """
65 course_list = pickle.load(open(settings.COURSE_DB_DIR, 'rb'))66 for num, item in enumerate(course_list, 1):67 print(num, item.course_name, item.cost, item.teacher.name, item.create_time, item.create_admin.username)68
69 defto_login(user, pwd):70 """
71 管理员登录的方法72 :param user:73 :param pwd:74 :return:75 """
76 ifos.path.exists(os.path.join(settings.BASE_ADMIN_DIR, user)):77 #从文件中将管理员对象读取出来(里面封装了用户信息以及提供了登录访求)
78 admin_obj = pickle.load(open(os.path.join(settings.BASE_ADMIN_DIR, user), 'rb'))79 ifadmin_obj.login(user, pwd):80 print('登录成功!')81 whileTrue:82 sel = input("1、创建老师;2、创建课程; 3、查看课程表(q退出程序) \n >>>>")83 if sel == '1': #创建老师
84 create_teacher(admin_obj)85 elif sel == '2': #创建课程
86 create_course(admin_obj)87 elif sel == '3':88 look_course()89 else:90 break
91 else:92 return 1
93 else:94 return095
96 defto_register(user, pwd):97 """
98 管理员注册的方法99 :param user:100 :param pwd:101 :return:102 """
103 admin_obj =models.Admin()104 admin_obj.register(user, pwd)105
106 defmain():107 inp = input("1、管理员登录; 2、管理员注册;\n >>>>>")108 user = input('请输入用户名:')109 pwd = input('请输入密码:')110 if inp == '1':111 ret =to_login(user, pwd)112 if ret == 1:113 print("密码错误!")114 elif ret ==0:115 print("用户不存在!")116
117 elif inp == '2':118 to_register(user, pwd)119
120
121 if __name__ == "__main__":122 main()