首页 > 其他分享 >Day31.管理员创建学校

Day31.管理员创建学校

时间:2024-07-03 21:42:21浏览次数:23  
标签:school obj name 创建 Day31 学校 管理员 todo

1.管理员创建学校_代码执行流程

2.管理员创建学校_视图层admin.py

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

# todo 管理员创建学校
@common.auth('admin')
def create_school():
    print('管理员创建学校...')
    while True:
        # todo 1. 用户输入学校的名称与地址
        school_name = input('请输入学校名称:').strip()
        school_addr = input('请输入学校地址:').strip()

        # todo 2. 调用接口,保存学校
        flag, msg = admin_interface.create_school_interface(
            # todo 学校名、学校地址、创建学校的管理员
            school_name, school_addr, admin_info.get('user')
            )

        if flag:
            print(msg)
            break
        else:
            print(msg)

3.管理员创建学校_管理员接口层admin_interface.py中create_school_interface函数

from db import models

# todo 管理员创建学校接口
def create_school_interface(school_name, school_addr, admin_name):
    # todo 1. 查看当前学校是否已存在,shcool_obj 又可能是 `对象` or `None``
    school_obj = models.School.select(school_name)

    # todo 2. 若学校存在,则返回False,告诉用户学校已存在
    if school_obj:
        return False, '学校已存在'

    # todo 3. 若不存在,则创建学校,注意:(由管理员对象创建)
    else:
        admin_obj = models.Admin.select(admin_name)
        # todo 由管理员来调用创建学校方法,并传入学校的名字与地址
        admin_obj.create_school(
            school_name, school_addr
        )
        # todo 4. 返回创建学校成功给视图层
        return True, '{}创建学校成功'.format(school_name)

4.管理员创建学校_models.py中父类Base和学校类School

'''用于存放类的
学校类、学员类、课程类、讲师类、管理员类
'''
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 School(Base):
    def __init__(self, name, addr):
        # todo 必须写:self.user, 因为db_handler里面的select_data统一规范
        self.user = name
        self.addr = addr
        # todo 课程列表:每所学校都应该有相应的课程
        self.course_list = []

5.管理员创建学校_models.py中父类Base和管理员类admin

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

# 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()
        pass

    # 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):
        pass

 

标签:school,obj,name,创建,Day31,学校,管理员,todo
From: https://www.cnblogs.com/vless/p/18282601

相关文章

  • Day31.管理员创建课程功能
    1.管理员创建课程_代码及执行流程2.管理员创建课程_管理员创建课程admin.py#todo管理员创建课程@common.auth('admin')defcreate_course():print('管理员创建课程...')whileTrue:#todo1.让管理员先选择学校#todo1.1调用接口,获取所有......
  • 【漏洞复现】金斗云 HKMP智慧商业软件 任意用户创建漏洞
    0x01产品简介金斗云智慧商业软件是一款功能强大、易于使用的智慧管理系统,通过智能化的管理工具,帮助企业实现高效经营、优化流程、降低成本,并提升客户体验。无论是珠宝门店、4S店还是其他零售、服务行业,金斗云都能提供量身定制的解决方案,助力企业实现数字化转型和智能化升......
  • 车载测试之-CANoe创建仿真工程
    在现代汽车工业中,车载测试是确保车辆电子系统可靠性和功能性的关键环节。而使用CANoe创建仿真工程,不仅能够模拟真实的车辆环境,还能大大提升测试效率和准确性。那么,CANoe是如何实现这些的呢?车载测试中,为什么选择使用CANoe创建仿真工程?它具备哪些独特的功能和优势,能够在复杂的车......
  • CANoe创建仿真工程
    在现代汽车工业中,车载测试是确保车辆电子系统可靠性和功能性的关键环节。而使用CANoe创建仿真工程,不仅能够模拟真实的车辆环境,还能大大提升测试效率和准确性。那么,CANoe是如何实现这些的呢? 车载测试中,为什么选择使用CANoe创建仿真工程?它具备哪些独特的功能和优势,能够在复杂的......
  • Java循环创建对象内存溢出怎么解决
    在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError)。这通常发生在以下几种情况中:(1)循环内不断创建对象但对象引用未被释放:对象被创建后,如果它们一直被引用(即使是间接的),垃圾收集器(GC)就无法回收它们占用的内存。(2)循环次数过多或对象体积......
  • Java循环创建对象内存溢出怎么解决
    在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError)。这通常发生在以下几种情况中:(1)循环内不断创建对象但对象引用未被释放:对象被创建后,如果它们一直被引用(即使是间接的),垃圾收集器(GC)就无法回收它们占用的内存。(2)循环次数过多或对象体......
  • VMware vSphere Tanzu部署_11_创建TKC命名空间
    创建TKC命名空间创建命名空间窗口tkc-01命名空间授权命名空间权限配置命名空间的访问权限配置tkc-01命名空间调用的存储配置tkc-01关联的VM服务此处勾选的VM类,将决定tkc集群可部署的集群节点大小和类型......
  • 使用 PyTorch 创建的多步时间序列预测的 Encoder-Decoder 模型
    Encoder-decoder模型在序列到序列的自然语言处理任务(如语言翻译等)中提供了最先进的结果。多步时间序列预测也可以被视为一个seq2seq任务,可以使用encoder-decoder模型来处理。本文提供了一个用于解决Kaggle时间序列预测任务的encoder-decoder模型,并介绍了获得前10%结果......
  • 在vmare中创建centos虚拟机
    1,环境window11vmareworkstation172. 3, 4这里是因为一会儿可以使用自己下载的镜像文件 5.选择用户操作系统linux  6. 7. 8. 9. 10. 11. 12, 13. 14. 15 ......
  • Linux多进程和多线程(一)-进程的概念和创建
    进程进程的概念进程的特点如下进程和程序的区别LINUX进程管理getpid()getppid()进程的地址空间虚拟地址和物理地址进程状态管理进程相关命令pstoppstreekill进程的创建并发和并行fork()父子进程执行不同的任务创建多个进程进程的退出exit()和_exit()exit()函数......