class MenuFood(BaseModel): # 对外ID goods_id = db.Column(db.String(16)) # 菜品名称 goods_name = db.Column(db.String(64)) # 菜品评分 rating = db.Column(db.Float, default=5.0) # 归属店铺 shop_id = db.Column(db.Integer, db.ForeignKey('merchant_shop.id')) # 归属分类 category_id = db.Column(db.Integer, db.ForeignKey('menu_category.id')) cates = db.relationship('MenuCategory', backref='foods') # 添加一条关系 # 菜品价格 goods_price = db.Column(db.Float, default=0.0) # db.DECIMAL(6, 2) # 菜品描述 description = db.Column(db.String(128), default='') # 月销售额 month_sales = db.Column(db.Integer, default=0) # 评分数量 rating_count = db.Column(db.Integer, default=0) # 提示信息 tips = db.Column(db.String(128), default='') # 菜品图片 goods_img = db.Column(db.String(128), default='') def keys(self): return "goods_name", "shop_id", "goods_price", "description","tips" def __repr__(self): return "<Food: {}-{}>".format(self.goods_name, self.goods_price)
class BuyerOrder(BaseModel): # 买家id user_id = db.Column(db.Integer, db.ForeignKey('buyer_user.id')) user = db.relationship("BuyerUser", backref="order") # 店铺id shop_id = db.Column(db.Integer, db.ForeignKey('shell_shop_model.id')) shop = db.relationship("ShellShopModel", backref="order") # 订单地址 order_address = db.Column(db.String(128)) # 订单价钱 order_price = db.Column(db.Float, default=0) # 订单状态 order_status = db.Column(db.Boolean, default=False) # 订单编号 order_code = db.Column(db.String(32), unique=True) # 下单时间 order_tiem = db.Column(db.DateTime, onupdate=True) def keys(self): return "order_address", "order_price", "order_status", "order_code" def get_status(self): if self.order_status: return "已支付" return "待支付"
class OrderModel(BaseModel): """订单表""" # 订单编号 order_code = db.Column(db.String(32), unique=True) shop_pid = db.Column(db.String(16), db.ForeignKey("shop_model.pub_id")) # 买家id信息 user_id = db.Column(db.Integer, db.ForeignKey("buyer_model.id")) # 送货地址 order_address = db.Column(db.String(128)) # 订单金额 order_price = db.Column(db.Float, default=0) # 订单状态 order_status = db.Column(db.Integer, default=0) # 订单产生时间 created_time = db.Column(db.DateTime, onupdate=True) # 第三方交易号 trade_sn = db.Column(db.String(128), default="") user = db.relationship("BuyerModel", backref="orders") shop = db.relationship("ShopModel", backref="orders") def keys(self): return "order_address", "order_code", "order_price" def get_status(self): if self.order_status == 0: return "待付款" else: return "已付款"
class OrderInfo(BaseModel): # 订单编号 order_code = db.Column(db.String(32), unique=True) shop_pid = db.Column(db.String(16), db.ForeignKey('seller_shop.pub_id')) user_id = db.Column(db.Integer, db.ForeignKey('buyer_user.id')) # 订单送货地址 order_address = db.Column(db.String(128)) # 订单价钱 order_price = db.Column(db.Float, default=0) # 订单状态 order_status = db.Column(db.Integer, default=0) # 订单产生时间 created_time = db.Column(db.DateTime, onupdate=True) # 第三方交易号 trade_sn = db.Column(db.String(128), default='') user = db.relationship('BuyerUser', backref='orders') shop = db.relationship('SellerShop', backref='orders') def keys(self): return 'order_address', 'order_price', 'order_code' def get_status(self): if self.order_status == 0: return "代付款" else: return "以付款"
class OrderInfo(BaseModel): order_code = db.Column(db.String(32), unique=True) shop_id = db.Column(db.Integer, db.ForeignKey('seller_shop.pub_id')) user_id = db.Column(db.Integer, db.ForeignKey('buyer_user.id')) # 订单送货地址 order_address = db.Column(db.String(128)) # 订单价钱 order_price = db.Column(db.Float) # 订单状态 order_status = db.Column(db.Integer) # 订单产生时间 created_time = db.Column(db.DateTime, onupdate=True) # 第三方交易号 trade_sn = db.Column(db.String(128))
class Album(BaseModel): """相册""" title = db.Column(db.String(32), unique=True, index=True) content = db.Column(db.Text()) created_time = db.Column(db.DateTime, default=datetime.now) update_time = db.Column(db.DateTime, onupdate=datetime.now) username = db.Column(db.ForeignKey('user.username')) user = db.relationship('User', backref='album_of_user') category_name = db.Column(db.ForeignKey('category.name')) category = db.relationship('Category', backref='album_of_category') def __repr__(self): return self.title
class Photo(BaseModel): title = db.Column(db.String(32), unique=True, index=True) img = db.Column(db.String(128)) content = db.Column(db.Text()) album_id = db.Column(db.ForeignKey('album.id')) album = db.relationship('Album', backref='photo') label_name = db.Column(db.ForeignKey('label.name')) label = db.relationship('Label', backref='photo_of_label') created_time = db.Column(db.DateTime, default=datetime.now) def __repr__(self): return self.img
class BuyerAddress(BaseModel): user_id = db.Column(db.Integer, db.ForeignKey("buyer_model.id")) user = db.relationship(BuyerModel, backref="addresses") # 省 provence = db.Column(db.String(8)) # 市 city = db.Column(db.String(16)) # 县 area = db.Column(db.String(16)) # 详细地址 detail_address = db.Column(db.String(64)) # 收货人姓名 name = db.Column(db.String(32)) # 收货人电话 tel = db.Column(db.String(16)) def keys(self): return "provence", "city", "area", "detail_address", "name", "tel" def __repr__(self): return "{}{}{}{} {} {}".format( self.provence, self.city, self.area, self.detail_address, self.name, self.tel, )
class UserLog(db.Model): __tablename__ = 'userlog' id = db.Column(db.BigInteger, primary_key=True, autoincrement=True) created_time = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) __mapper_args__ = { "order_by": created_time.desc() } def __str__(self): return '<Userlog: {0}>'.format(self.created_time)
class OrderGoods(BaseModel): order_id = db.Column(db.Integer, db.ForeignKey('order_info.id')) # 商品ID号 goods_id = db.Column(db.Integer) # 商品名称 goods_name = db.Column(db.String(64)) # 商品图片 goods_image = db.Column(db.String(128), default='') # 商品价钱 goods_price = db.Column(db.Float) # 商品数量 amount = db.Column(db.Integer) order = db.relationship('OrderInfo', backref='order_goods')
class DishesInfoModel(BaseModel): goods_id = db.Column(db.String(16), index=True) goods_name = db.Column(db.String(32), nullable=False) goods_price = db.Column(db.Float, nullable=False) goods_img = db.Column(db.String(64)) month_sales = db.Column(db.Integer, default=0) rating = db.Column(db.Float, default=5.0) tips = db.Column(db.String(64), default="") description = db.Column(db.String(64), default="") cate_id = db.Column(db.Integer, db.ForeignKey(DishesCategoryModel.id)) cate = db.relationship("DishesCategoryModel", backref="info") def keys(self): return "goods_id", "goods_name", "goods_price", "goods_img", "month_sales", "rating", \ "tips", "description",
class OrderGoodsModel(BaseModel): order_id = db.Column(db.Integer, db.ForeignKey('buyer_order.id')) # 商品ID号 goods_id = db.Column(db.Integer) # 商品名称 goods_name = db.Column(db.String(64)) # 商品图片 goods_img = db.Column(db.String(128), default='') # 商品价钱 goods_price = db.Column(db.Float) # 商品数量 amount = db.Column(db.Integer) order = db.relationship('BuyerOrder', backref='goods') def keys(self): return "goods_id", "goods_name", "goods_img", "goods_price", "amount"
class BuyerAddress(BaseModel): user_id = db.Column(db.Integer, db.ForeignKey('buyer_user.id')) user = db.relationship("BuyerUser", backref="addresses") # 省 provence = db.Column(db.String(8)) # 市 city = db.Column(db.String(16)) # 县 area = db.Column(db.String(16)) # 详细地址 detail_address = db.Column(db.String(64)) # 收货人姓名 name = db.Column(db.String(32)) # 收货人电话 tel = db.Column(db.String(16)) def keys(self): return "provence", "city", "area", "detail_address", "name", "tel"
class OrderGoodsModel(BaseModel): """订单商品表""" # 订单id号 order_id = db.Column(db.Integer, db.ForeignKey("order_model.id")) # 商品id号 goods_id = db.Column(db.Integer) # 商品名称 goods_name = db.Column(db.String(64)) # 上平图片 goods_img = db.Column(db.String(128), default="") # 商品价格 goods_price = db.Column(db.Float) # 商品的数量 amount = db.Column(db.Integer) order = db.relationship(OrderModel, backref="goods") def keys(self): return "goods_id", "amount", "goods_name", "goods_img", "goods_price"
class MenuCategory(BaseModel): # 分类名称 name = db.Column(db.String(32)) # 分类描述 description = db.Column(db.String(128), default='') # 分类编号 type_accumulation = db.Column(db.String(16)) # 是否默认 is_default = db.Column(db.Boolean, default=False) # 归属店铺 shop_pid = db.Column(db.String(16), db.ForeignKey('seller_shop.pub_id')) shop = db.relationship('SellerShop', backref='categories') def keys(self): return "name", "description", "type_accumulation", "is_default" def __repr__(self): return "<MenuCate {}>".format(self.name)
class SellerShop(BaseModel): # 店铺对外ID pub_id = db.Column(db.String(16), unique=True, index=True) # 店铺名称 shop_name = db.Column(db.String(32), nullable=False, unique=True) # 店铺logo图片 shop_img = db.Column(db.String(128)) # 店铺评分 shop_rating = db.Column(db.Float, default=5.0) # 是否是品牌 brand = db.Column(db.Boolean, default=False) # 是否准时送达 on_time = db.Column(db.Boolean, default=True) # 是否蜂鸟配送 fengniao = db.Column(db.Boolean, default=True) # 是否保险 bao = db.Column(db.Boolean, default=False) # 是否有发票 piao = db.Column(db.Boolean, default=True) # 是否准标识 zhun = db.Column(db.Boolean, default=False) # 起送价格 start_send = db.Column(db.Float, default=0.0) # 配送费 send_cost = db.Column(db.Float, default=0.0) # 店铺公告 notice = db.Column(db.String(210), default='') # 优惠信息 discount = db.Column(db.String(210), default='') # 店铺和商家的关系 seller_pid = db.Column(db.Integer, db.ForeignKey('seller_login_model.id')) # 建立反向查询关系 seller = db.relationship("SellerLoginModel", backref="shop") def __repr__(self): return "<Shop {}---{}>".format(self.pub_id, self.shop_name) def keys(self): return "shop_name", "shop_img", "brand", "on_time", "fengniao", "bao", \ "piao", "zhun", "start_send", "send_cost", "notice", "discount"
class AddressUser(BaseModel): # 收货人姓名 name = db.Column(db.String(20)) # 收货人电话 tel = db.Column(db.String(16)) # 省 provence = db.Column(db.String(20)) # 市 city = db.Column(db.String(20)) # 区 area = db.Column(db.String(20)) # 详细地址 detail_address = db.Column(db.String(100)) # 关联用户表 user_id = db.Column(db.Integer, db.ForeignKey("buyer_user.id")) buyeruser = db.relationship('BuyerUser', backref='address') def keys(self): return "name", "tel", "provence", "city", "area", "detail_address" def __repr__(self): return self.provence
class Blog(db.Model): __tablename__ = 'blog' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(256)) author = db.Column(db.String(50)) category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=True) tags = db.relationship('Tag', secondary=tags, lazy='subquery', backref=db.backref('blogs', lazy=True)) content = db.Column(db.Text()) created_time = db.Column(db.DateTime, default=datetime.utcnow) modified_time = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) #utcnow不能加(),否则时间是固定的 __mapper_args__ = {"order_by": created_time.desc()} def __str__(self): return '<Blog:{0}>'.format(self.title)
return self.name class Tag(db.Model): __tablename__ = 'tag' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(20)) def __str__(self): return self.name tags = db.Table( 'tags', db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True), db.Column('blog_id', db.Integer, db.ForeignKey('blog.id'), primary_key=True)) class Blog(db.Model): __tablename__ = 'blog' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(256)) author = db.Column(db.String(50)) category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=True)