예제 #1
0
class BaseModel(object):
    """模型基类,为每个模型补充创建时间与更新时间"""

    create_time = db.Column(db.DateTime, default=datetime.now)  # 记录的创建时间
    update_time = db.Column(db.DateTime,
                            default=datetime.now,
                            onupdate=datetime.now)  # 记录的更新时间
예제 #2
0
class ShopCart(db.Model):
    """购物车"""

    __tablename__ = "shop_cart"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    sdate = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
    counts = db.Column(db.Integer)  # 添加商品数量,不可大于库存总量
    # subTotal = db.Column(db.Float)  # 结算总金额
    uid = db.Column(db.Integer, db.ForeignKey("user.id", ondelete='cascade'))
    user = db.relationship("User", backref=db.backref("shopcarts", order_by=sdate.desc()))
    gid = db.Column(db.Integer, db.ForeignKey('goods.id'))
    goods = db.relationship("Goods", backref=db.backref("shopcarts"))
예제 #3
0
class Category(BaseModel, db.Model):
    """商品类别"""

    __tablename__ = 'category'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 商品类别编号
    cname = db.Column(db.String(255), nullable=False)  # 商品类别名称

    def category_json(self):
        category_json = {}
        category_json["id"] = self.id
        category_json["cname"] = self.cname

        return category_json
예제 #4
0
class User(BaseModel, db.Model):
    """用户"""

    __tablename__ = "user"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 用户编号
    name = db.Column(db.String(32), unique=True, nullable=False)  # 用户昵称
    _password = db.Column('password', db.String(128), nullable=False)  # 加密的密码
    mobile = db.Column(db.String(11), unique=True, nullable=False)  # 手机号
    addr = db.Column(db.String(255), nullable=True)  # 用户的收货地址
    real_name = db.Column(db.String(32))  # 真实姓名
    id_card = db.Column(db.String(18))  # 身份证号
    avatar_url = db.Column(db.String(128),
                           default='/static/user/icon/default.jpg')  # 用户头像路径

    # 加入密码散列
    @property
    def password(self):
        # raise AttributeError('The current property is not readable')
        return self._password

    @password.setter
    def password(self, value):
        self._password = generate_password_hash(value)  # 生成哈希值密码

    def verify_password(self, password):
        return check_password_hash(self._password, password)  # 检验哈希值是否一致
예제 #5
0
class Comment(db.Model):
    '''商品评论'''

    __tablename__ = 'comment'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    content = db.Column(db.Text, nullable=False)
    cdate = db.Column(db.DateTime, default=datetime.now)
    uid = db.Column(db.Integer, db.ForeignKey("user.id", ondelete='cascade'))
    user = db.relationship("User",
                           backref=db.backref('commments',
                                              order_by=cdate.desc()))
    # comment_parent = db.relationship("Comment", backref=db.backref("comments"), remote_side=[id])
    gid = db.Column(db.Integer, db.ForeignKey('goods.id'))
    goods = db.relationship("Goods",
                            backref=db.backref('commments',
                                               order_by=cdate.desc()))
예제 #6
0
class Goods(BaseModel, db.Model):
    """商品"""

    __tablename__ = "goods"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 房屋编号
    title = db.Column(db.String(128), nullable=False)  # 商品名称
    price = db.Column(db.Integer, default=0)  # 单价
    counts = db.Column(db.Integer, default=1)  # 商品数目
    is_sell = db.Column(db.Integer, default=1)  # 0销完 1在售
    date = db.Column(db.DateTime, default=datetime.now,
                     onupdate=datetime.now)  # 上架时间
    index_image_url = db.Column(db.String(256), default="")  # 主图片的路径
    # images = db.relationship("GoodsImage")  # 商品图片
    click_counts = db.Column(db.Integer, default=0)  # 被浏览次数
    cid = db.Column(db.Integer, db.ForeignKey("category.id",
                                              ondelete='cascade'))
    category = db.relationship("Category",
                               backref=db.backref("goods",
                                                  order_by=date.desc()))
예제 #7
0
class Order(db.Model):
    """订单"""

    __tablename__ = "order"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    total_money = db.Column(db.Float)
    count = db.Column(db.Integer)  # 订单商品数量
    gid = db.Column(db.Integer, db.ForeignKey('goods.id'))  # 商品外键
    goods = db.relationship('Goods', backref=db.backref('orders'))
    ordertime = db.Column(db.DateTime, default=datetime.now)  # 订单创建时间
    state = db.Column(db.Integer, default=0)  # 0未支付,1送达中 2送达完毕
    uid = db.Column(db.Integer, db.ForeignKey("user.id", ondelete='cascade'))
    user = db.relationship("User",
                           backref=db.backref("orders",
                                              order_by=ordertime.desc()))
    order_last_time = db.Column(db.DateTime,
                                default=datetime.now,
                                onupdate=datetime.now)  # 订单支付时间