Day31.管理员创建老师功能

1.管理员创建老师功能_代码及执行流程

2.管理员创建老师功能_视图层管理员创建老师admin.py下的create_teacher方法

'''
管理员视图
'''
from interface import admin_interface
from lib import common, common_interface

# todo 管理员创建老师
@common.auth('admin')
def create_teacher():
    print('管理员创建老师...')
    while True:
        # todo 1. 让管理员
        teacher_name = input('请输入老师的名字:').strip()
        
        # todo 2. 调用接口创建老师
        flag, msg = admin_interface.create_teacher_interface(
            teacher_name, admin_info.get('user')
        )
        if flag:
            print(msg)
            break
        else:
            print(msg)

3.管理员创建老师功能_管理员接口层管理员创建老师接口admin_interface.py下的create_teacher_interface方法

'''管理员接口'''
from db import models

# todo 管理员创建老师接口
def create_teacher_interface(teacher_name, admin_name, teacher_pwd='123'):
    # todo 1. 判断老师是否存在
    teacher_obj = models.Teacher.select(teacher_name)
    # todo 2. 如存在,则返回不能创建
    if teacher_obj:
        return False, '老师已存在'

    # todo 3. 若不存在,则创建老师,让`管理员`来创建
    admin_obj = models.Admin.select(admin_name)
    admin_obj.create_teacher(teacher_name, teacher_pwd)

    return True, '{}老师创建成功'.format(teacher_name)

4.管理员创建老师功能_存放类方法的管理员类和老师类

'''用于存放类的
学校类、学员类、课程类、讲师类、管理员类
'''
from db import db_handler

# todo 提供select和save方法写入父类, 让所有子类都继承
class Base:
    # todo 定义一个数据查找方法 ----> 登录、查看数据
    @classmethod
    def select(cls, username):      # 接收到类Admin和username
        # todo obj: 对象 OR None
        obj = db_handler.select_data(
            cls, username)
        return obj

    # todo 定义一个数据保存方法 ----> 注册、保存、更新数据
    def save(self):
        # todo 调用db_handler中的save方法,并且需要对其中的方法做传值,即添加self
        # todo 让db_handler中的save_data进行保存对象数据
        db_handler.save_data(self)

# todo 管理员类
class Admin(Base):
    # todo 调用类的时候触发
    # todo admin_username, admin_password
    def __init__(self, user, pwd):
        self.user = user
        self.pwd = pwd
    
    # todo 管理员创建学校接口
    def create_school(self, school_name, school_addr):
        # 调用School类, 实例化一个学校对象, 并保存
        school_obj = School(school_name, school_addr)
        school_obj.save()

    # todo 管理员创建课程接口
    def create_course(self, school_obj, course_name):
        # todo 1. 调用课程类,实例化创建课程
        course_obj = Course(course_name)
        course_obj.save()
        # todo 2. 获取当前学校对象,并将课程添加到课程列表中
        school_obj.course_list.append(course_name)
        # todo 3. 更新学校数据
        school_obj.save()

    # todo 管理员创建讲师接口
    def create_teacher(self, teacher_name, teacher_pwd):
        # todo 1. 调用老师类,实例化得到老师对象,并保存
        teacher_obj = Teacher(teacher_name, teacher_pwd)
        teacher_obj.save()

# todo 老师类
class Teacher(Base):
    def __init__(self, teacher_name, teacher_pwd):
        self.user = teacher_name
        self.pwd = teacher_pwd
        self.course_list_from_tea = []

5.管理员创建老师功能_程序运行结果

 

posted on 2024-07-03 22:45  与太阳肩并肩  阅读(6)  评论(0编辑  收藏  举报

导航