接口层代码:
admin_interface.py
common_interface.py
student_interface.py
teacher_interface.py
--------------------------
admin_interface.py ?
from db import models
"""
管理员接口
"""
#注册管理员接口
def admin_register_interface(username,password):
#1.判断用户是否存在
#调用Admin类中的select方法
# 由该方法去调用db_handeler中的select_data功能获取对象
admin_obj=models.Admin.select(username)
#1.1若存在不允许注册,返回用户已存在的视图
if admin_obj:
return False,"用户已经存在"
#1.2 若不存在则允许注册,调用类实例得到对象并保存
admin_obj=models.Admin(username,password)
# 对象调用save()会将admin_obj传给save方法
admin_obj.save()
return True,"注册成功!"
def admin_login_interface(username,password):
#1.判断用户是否存在
admin_obj=models.Admin.select(username)
#2,若不存在,则证明用户不存在并返回给视图层
if not admin_obj:
return False,"用户名不存在!"
#3.若用户存在则校验密码
if password==admin_obj.pwd:
return True,"登录成功!"
else:
return False,"密码错误!"
#管理员创建学校接口
def create_school_interface(schoool_name,schoool_addr,admin_name):
#1.查看当前学校是否已存在
#school_obj--->对象 or None
school_obj=models.School.select(schoool_name)
#2.若学校存在,则返回False告诉用户学校已存在
if school_obj:
return False,"学校已存在"
#3.若不存在,则创建学校【由管理员对象来创建】
admin_obj=models.Admin.select(admin_name)
admin_obj.create_school(
schoool_name,schoool_addr
)
#4.返回创建学校成功给视图层
return True,f"[{schoool_name}]学校创建成功"
#管理员创建课程接口
def create_course_interface(school_name,course_name,admin_name):
#1.查看课程是否存在
#1.1先获取学校对象中的课程列表
school_obj=models.School.select(school_name)
#1.2判断当前课程是否存在课程列表中
if course_name in school_obj.course_list:
return False,"当前课程已存在"
#1.3若课程不存在,则创建课程,由管理员来创建
admin_obj=models.Admin.select(admin_name)
admin_obj.create_course(
school_obj,course_name
)
return True,f"[{course_name}]课程创建成功,绑定给[{school_name}]校区"
#管理员创建老师接口
def create_teacher_interface(teacher_name,admin_name,teacher_pwd='123'):
#1.判断老师是否存在
teacher_obj=models.Teacher.select(teacher_name)
#2.如果存在,则返回不能创建
if teacher_obj:
return False,"老师已存在"
#3.若不存在,则创建老师,让管理员来创建
admin_obj=models.Admin.select(admin_name)
admin_obj.create_teacher(teacher_name,teacher_pwd)
return True,f"[{teacher_name}]老师创建成功!"
common_interface.py ?
from db import models
from conf import settings
import os
"""
公共登录接口,为其他几个登录模块复用使用
"""
#参数 用户,密码,登录角色,例如“管理员登录,学生登录,老师角色登录”
def login_interface(user,pwd,user_type):
if user_type=="admin":
obj=models.Admin.select(user_type)
elif user_type == "student":
obj = models.Student.select(user_type)
elif user_type == "teacher":
obj = models.Teacher.select(user_type)
else:
return False,"登录角色不对,请输入角色"
#1.判断用户是否存在
if obj:
#2.若用户存在,则校验密码
if pwd==obj.pwd:
return True,"登录成功!"
else:
return False,"密码错误!"
else:
return False,"用户名不存在!"
# 获取所有学校名称接口
def get_all_school_interface():
#获取所有学校文件夹路径
school_dir=os.path.join(settings.DB_PATH,'School')
#2.判断文件夹是否存在
if not os.path.exists(school_dir):
return False,"没有学校,请先联系管理员!"
#3.文件夹若存在,则获取文件夹中所有文件的名字
school_list=os.listdir(school_dir)
return True,school_list
#获取学校下所有课程接口
def get_course_in_school_interace(school_name):
#1.获取学校对象
school_obj=models.School.select(school_name)
#2.获取学校对象下所有课程
course_list=school_obj.course_list
if not course_list:
return False,"该学校没有课程"
return True,course_list
student_interface.py ?
"""
学生接口层
"""
from db import models
#学生注册接口
def student_register_interface(user,pwd):
#1.判断用户是否存在
#调用student类中的select方法
#由该方法去调用db_handler中的select_data功能获取对象
student_obj=models.Student.select(user)
#1.1 若?不允许注册,返回用户已存在,给视图层
if student_obj:
return False,"学生用户已经存在"
#1.2若不存在,则允许注册,调用类实例化得到对象并保存
student_obj=models.Student(user,pwd)
#对象调用save()会将admin_obj传给save方法
student_obj.save()
return True,"注册成功!"
#学生denglu接口
def student_login_interface(user,pwd):
#1.判断用户是否存在
student_obj=models.Student.select(user)
#2.若不存在,则证明用户不存在并返回给视图层
if not student_obj:
return False,"用户名不存在!"
#3.若用户存在,则校验密码
if pwd==student_obj.pwd:
return True,"登录成功"
else:
return False,"密码错误!"
#学生选择学校接口
def add_school_interface(school_name,student_name):
#1.判断当前学生是否存在学校
student_obj=models.Student.select(student_name)
if student_obj.school:
return False,"当前学生已经选择过学校了!"
#2.若不存在学校,则给调用学生对象中选择学校的方法,实现学生添加学校
student_obj.add_school(school_name)
return True,"选择学校成功!"
#获取学生所在学校所有课程接口
def get_course_list_interface(student_name):
#1.获取当前学生对象
student_obj=models.Student.select(student_name)
school_name=student_obj.school
#2.判断当前学生是否有学校,若没有则返回False
if not school_name:
return False,"没有学校,请先选择学校"
#3.开始获取学校对象中的课程列表
school_obj=models.School.select(school_name)
#3.1判断当前学校中是否有课程,若没有,则联系管理员添加
course_list=school_obj.course_list
if course_list:
return False,"没有课程,请先联系管理员创建"
#3.2若有则,返回课程列表
return True,course_list
#学生选择学校接口
def add_course_interface(course_name,student_name):
#1.先判断当前课程是否已经存在学生课程列表中
student_obj=models.Student.select(student_name)
if course_name in student_obj.course_list:
return False,"该课程已经选择过了"
#2.调用学生对象总添加课程的方法
student_obj.add_course(course_name)
return True,f"[{course_name}--课程添加成功!]"
# #学生选择学校接口
# #学生选择学校接口
# def add_school_interface(school_name,student_name):
#
# #.1.判断当前学生是否存在学校
# student_obj=models.Student.select(student_name)
#
# if student_obj.school:
# return False,"当前学生已经学则过学校了"
#
# #2.若不存在学校,则给调用学生UI相中选择学校的方法,实现学生添加学校
# student_obj.add_school(school_name)
# return True,"选择学校成功!"
#学生查看分数接口
def check_score_interface(student_name):
student_obj=models.Student.select(student_name)
if student_obj.score:
return student_obj.score
teacher_interface.py
"""
老师接口层
"""
from db import models
#老师查看课程接口
def check_course_interface(teacher_name):
pass
#1.获取当前老师对象
teacher_obj=models.Teacher.select(teacher_name)
#2.判断老师对象中课程列表是否有值
#让老师对象,调用查看教授课程方法,返回课程
#course_list=teacher_obj.course_list_from_tea
# course_list=teacher_obj.course_list_from_tea
course_list=teacher_obj.show_course()
#3.若有则返回True,无则返回False
if not course_list:
return False,"老师没有选择课程"
return True,course_list
#老师添加课程接口
def add_course_interface(course_name,teacher_name):
#1.获取当前老师
teacher_obj=models.Teacher.select(teacher_name)
#2.判断当前课程是否在老师的课程列表中
course_list=teacher_obj.course_list_from_tea
if course_name in course_list:
return False,"该课程已存在!"
#3.若不存在,则添加该课程到老师课程列表中
teacher_obj.add_course(course_name)
return True,"添加课程成功!"
#老师获取课程下学生接口
def get_student_interface(course_name,teacher_name):
#1.获取当前老师对象
teacher_obj=models.Teacher.select(teacher_name)
#2.让当前老师对象,调用获取课程下所有学生功能
student_list=teacher_obj.get_student(course_name)
#3.判断课程下是否有学生
if not student_list:
return False,"学生没有选择该课程!"
return True,student_list
#老师修改分数接口
def change_score_interface(course_name,student_name,score,teacher_iname):
#1.获取老师
teacher_obj=models.Teacher.select(teacher_iname)
#2.让老师对象调用修改分数方法
teacher_obj.change_score(course_name,student_name,score)
return True,"修改分数成功!"
|