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)