class Order(BaseModel, db.Model): """""" __tablename__ = "ihome_order" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey("ihome_user.id"), nullable=False) house_id = db.Column(db.Integer, db.ForeignKey("ihome_house.id"), nullable=False) begin_date = db.Column(db.DATETIME, nullable=False) end_date = db.Column(db.DATETIME, nullable=False) days = db.Column(db.Integer, nullable=False) house_price = db.Column(db.Integer, nullable=False) amount = db.Column(db.Integer, nullable=False) status = db.Column( db.Enum( "WAIT_ACCEPT", # 待接单 "WAIT_PAYMENT", # 待支付 "PAID", # 已支付 "WAIT_COMMENT", # 待评价 "COMPLETE", # 已完成 "CANCELED", # 已取消 "REJECTED", # 已拒单 ), default="WAIT_ACCEPT", index=True) comment = db.Column(db.Text) def to_dict(self): return { 'order_id': self.id, 'house_title': self.house.title, 'image': self.house.index_image_url if self.house.index_image_url else '', 'create_date': self.create_time.strftime('%Y-%m-%d'), 'begin_date': self.begin_date.strftime('%Y-%m-%d'), 'end_date': self.end_date.strftime('%Y-%m-%d'), 'amount': self.amount, 'days': self.days, 'status': self.status, 'comment': self.comment }
class HouseImage(BaseModel, db.Model): """房屋图片""" __tablename__ = 'ihome_house_image' id = db.Column(db.Integer, primary_key=True) # 房屋编号 house_id = db.Column(db.Integer, db.ForeignKey("ihome_house.id"), nullable=False) url = db.Column(db.String(256), nullable=False) # 图片的路径
class Student(db.Model): s_id = db.Column(db.Integer, primary_key=True, autoincrement=True) s_name = db.Column(db.String(20), unique=True) s_age = db.Column(db.Integer, default=18) # 连接外键1,一定要表名加字段 s_g = db.Column(db.Integer, db.ForeignKey('d4grade.g_id'), nullable=True) __tablename__ = 'd4student' def __init__(self, name, age): """ 初始化方法,给一个函数,方便给表内容赋值 :param name: :param age: """ self.s_name = name self.s_age = age
s_age = db.Column(db.Integer, default=18) # 连接外键1,一定要表名加字段 s_g = db.Column(db.Integer, db.ForeignKey('d4grade.g_id'), nullable=True) __tablename__ = 'd4student' def __init__(self, name, age): """ 初始化方法,给一个函数,方便给表内容赋值 :param name: :param age: """ self.s_name = name self.s_age = age # 中间关联表,把student course 关联起来 sc = db.Table('sc', db.Column('s_id', db.Integer, db.ForeignKey('d4student.s_id')), db.Column('c_id', db.Integer, db.ForeignKey('course.c_id'))) class Course(db.Model): c_id = db.Column(db.Integer, primary_key=True, autoincrement=True) c_name = db.Column(db.String(10), unique=True) students = db.relationship('Student', secondary=sc, backref='cou') # __tablename__ = 'course' def __init__(self, name): self.c_name = name
class House(BaseModel, db.Model): """房屋信息""" __tablename__ = 'ihome_house' id = db.Column(db.Integer, primary_key=True) # 房屋编号 # 房屋主任的用户编号 user_id = db.Column(db.Integer, db.ForeignKey("ihome_user.id"), nullable=False) # 归属地的区域编号 area_id = db.Column(db.Integer, db.ForeignKey("ihome_area.id"), nullable=False) title = db.Column(db.String(64), nullable=False) # 标题 price = db.Column(db.Integer, default=0) # 单价,单位:分 address = db.Column(db.String(512), default="") # 地址 room_count = db.Column(db.Integer, default=1) # 房间数 acreage = db.Column(db.Integer, default=0) # 房屋面积 unit = db.Column(db.String(32), default="") # 房屋单元, 几室几厅 capacity = db.Column(db.Integer, default=1) # 房屋容纳的人数 beds = db.Column(db.String(64), default="") # 房屋床铺的配置 deposit = db.Column(db.Integer, default=10) # 房屋押金 min_days = db.Column(db.Integer, default=1) # 最少入住天数 max_days = db.Column(db.Integer, default=0) # 最多入住天数,0表示不限制 order_count = db.Column(db.Integer, default=0) # 预定完成的该房屋的订单数 index_image_url = db.Column(db.String(256), default="") # 房屋主图片的路径 # 房屋的设施 facilities = db.relationship("Facility", secondary=ihome_house_facility) images = db.relationship("HouseImage") # 房屋的图片 orders = db.relationship("Order", backref='house') def to_dict(self): return { 'id': self.id, 'title': self.title, 'image': self.index_image_url if self.index_image_url else '', 'area': self.area.name, 'price': self.price, 'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'), # 'avatar': current_app.config['QINIU_URL']+self.user.avatar if self.user.a 'room': self.room_count, 'order_count': self.order_count, 'address': self.address } def to_full_dict(self): return { 'id': self.id, 'user_avatar': self.user.avatar if self.user.avatar else '', 'user_name': self.user.name, 'title': self.title, 'price': self.price, 'address': self.area.name + self.address, 'room_count': self.room_count, 'acreage': self.acreage, 'unit': self.unit, 'capacity': self.capacity, 'beds': self.beds, 'deposit': self.deposit, 'min_days': self.min_days, 'max_days': self.max_days, 'order_count': self.order_count, 'images': [image.url for image in self.images], 'facilities': [facility.to_dict() for facility in self.facilities], }
# 将当前对象序列化,转换为json格式 id--> {'id': id} def to_basic_dict(self): return { 'id': self.id, 'avatar': self.avatar if self.avatar else '', 'name': self.name, 'phone': self.phone } ihome_house_facility = db.Table( 'ihome_house_facility', db.Column("house_id", db.Integer, db.ForeignKey("ihome_house.id"), primary_key=True), db.Column("facility_id", db.Integer, db.ForeignKey("ihome_facility.id"), primary_key=True)) class House(BaseModel, db.Model): """房屋信息""" __tablename__ = 'ihome_house' id = db.Column(db.Integer, primary_key=True) # 房屋编号 # 房屋主任的用户编号 user_id = db.Column(db.Integer,