class Order(db.Model): """订单模型""" __tablename__ = 'orders' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) shop_id = db.Column(db.Integer, db.ForeignKey('shops.id')) group_id = db.Column(db.Integer, db.ForeignKey('groups.id')) total = db.Column(db.Float) time = db.Column(db.DateTime) text = db.Column(db.Text) luck = db.Column(db.Integer) shop = db.relationship('Shop') user = db.relationship('User') def __init__(self, user_id, shop_id, group_id, total, time, text, luck): self.user_id = user_id self.shop_id = shop_id self.group_id = group_id self.total = total self.time = time self.text = text self.luck = luck def __repr__(self): return '<Order %r>' % (self.id)
class City(db.Model): """城市""" __tablename__ = 'cities' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode(32)) shops = db.relationship('Shop', backref=db.backref('city', lazy='joined'), lazy='dynamic') groups = db.relationship('Group', backref=db.backref('city', lazy='joined'), lazy='dynamic') def __init__(self, name): self.name = name
class Connect(db.Model): """第三方登录""" __tablename__ = 'connects' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) openid = db.Column(db.Integer) access_token = db.Column(db.Unicode(32)) app = db.Column(db.Unicode(10)) def __init__(self, openid, access_token, app): self.openid = openid self.access_token = access_token self.app = app def __repr__(self): return '<Connect %r>' % self.app
class FoodCategory(db.Model): """食品分类模型""" __tablename__ = 'foodcategories' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode(32), nullable=False) shop_id = db.Column(db.Integer, db.ForeignKey('shops.id')) foods = relationship('Food', lazy='dynamic') def __init__(self, name, shop_id): self.name = name self.shop_id = shop_id def __repr__(self): return '<FoodCategory %r>' % self.name @staticmethod def findAllByShopId(shop_id): return FoodCategory.query.filter(FoodCategory.shop_id == shop_id).all()
class Shop(db.Model): """店铺模型""" __tablename__ = 'shops' id = Column(Integer, primary_key=True) name = Column(Unicode(32), nullable=False) address = Column(Unicode(120)) tel = Column(Unicode(120)) css = Column(Text) creator_id = db.Column(db.Integer, db.ForeignKey('users.id')) city_id = db.Column(db.Integer, db.ForeignKey('cities.id')) food_categories = db.relationship('FoodCategory', lazy="dynamic") foods = db.relationship('Food', lazy="dynamic") creator = db.relationship('User') def __init__(self, name, address, tel, city_id, creator_id, css=None): self.name = name self.address = address self.tel = tel self.city_id = city_id self.css = css self.creator_id = creator_id def __repr__(self): return '<Shop %r>' % self.name @staticmethod def get(id): return Shop.query.filter(Shop.id == id).first() @property def serialize(self): """Return object data in easily serializeable format""" return { 'id': self.id, 'name': self.name, 'address': self.address, 'tel': self.tel }
class Food(db.Model): """食品模型""" __tablename__ = 'food' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode(32)) price = db.Column(db.Float) week = db.Column(db.Integer, default=-1) shop_id = db.Column(db.Integer, db.ForeignKey('shops.id')) foodcategory_id = db.Column(db.Integer, db.ForeignKey('foodcategories.id')) def __init__(self, name, price, shop_id, week, food_category_id): self.name = name self.price = price self.shop_id = shop_id self.week = week self.food_category_id = food_category_id def __repr__(self): return '<Shop %r>' % self.name @property def serialize(self): """Return object data in easily serializeable format""" return { 'id': self.id, 'name': self.name, 'price': self.price, 'week': self.week }
class User(db.Model): """用户模型""" __tablename__ = 'users' query_class = UserQuery id = db.Column(db.Integer, primary_key=True) nickname = db.Column(db.Unicode(50)) name = db.Column(db.Unicode(50)) figureurl = db.Column(db.Text) join = db.Column(db.DateTime) role = db.Column(db.Unicode(10)) group_id = db.Column(db.Integer, db.ForeignKey('groups.id')) connects = db.relationship('Connect', backref='user', lazy="dynamic") def __init__(self, nickname=None, name=None, join=None, role=None, group_id=None, figureurl=None): self.nickname = nickname self.name = name self.join = join self.role = role self.group_id = group_id self.figureurl = figureurl def __repr__(self): return '<User %r>' % self.name def check_password(self, password): if self.password is None: return False return check_password_hash(self.password, password) def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return self.id