from db import db_handler


class Base(object):
    def save_obj(self):
        db_handler.save_obj(self)  # 将对象传过去通过对象点出name

    @classmethod
    def check_obj(cls, name):
        return db_handler.check_obj(cls, name)

    @classmethod
    def get_all_obj(cls):
        return db_handler.get_all_obj(cls)


class Admin(Base):
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd
        self.save_obj()

    def create_school(self, school_name, address):
        Schoool(school_name, address)

    def create_course(self, course_name, course_price, course_period):
        Course(course_name, course_price, course_period)

    def create_teacher(self, teacher_name):
        Teacher(teacher_name)
    def create_bank(self,name):
        Bank(name)


class Schoool(Base):
    def __init__(self, school_name, address):
        self.name = school_name
        self.address = address
        self.course_list = []
        self.save_obj()


class Course(Base):
    def __init__(self, course_name, course_price, course_period):
        self.name = course_name
        self.price = course_price
        self.period = course_period
        self.student_list = []
        self.save_obj()


class Teacher(Base):
    def __init__(self, teacher_name, ):
        self.name = teacher_name
        self.pwd = 'qwert'
        self.balance = 0
        self.salary = 0
        self.teacher_course_list = []
        self.save_obj()


class Student(Base):
    def __init__(self,name,pwd):
        self.name = name
        self.pwd = pwd
        self.student_school = None
        self.student_course_list = []
        self.course_score = {}
        self.balance = 0
        self.course_tuition = 0
        self.save_obj()

class Bank(Base):
    def __init__(self,name):
        self.name = name
        self.balance = 0
        self.save_obj()

保存方法

from conf import settings
import os
import pickle


def save_obj(obj):
    admin_dir = os.path.join(settings.DB_DIR, obj.__class__.__name__)
    if not os.path.exists(admin_dir):
        os.mkdir(admin_dir)
    obj_file_path = os.path.join(admin_dir, obj.name)
    with open(obj_file_path, 'wb')as f:
        pickle.dump(obj, f)


def check_obj(cls, name):
    admin_dir = os.path.join(settings.DB_DIR, cls.__name__)
    if not os.path.exists(admin_dir):
        os.mkdir(admin_dir)
    obj_file_path = os.path.join(admin_dir, name)
    if os.path.exists(obj_file_path):
        with open(obj_file_path, 'rb')as f:
            data = pickle.load(f)
            return data


def get_all_obj(cls):
    admin_dir = os.path.join(settings.DB_DIR,cls.__name__)
    if not os.path.exists(admin_dir):
        os.mkdir(admin_dir)
    return os.listdir(admin_dir)
posted @ 2022-08-09 20:22  懒羊羊A  阅读(16)  评论(0)    收藏  举报