Пример #1
0
class Deal(db.Model):
    # 1 user to multi deals
    id = db.Column(db.Integer, primary_key=True)
    time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    by_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    item_id = db.Column(db.Integer, db.ForeignKey('post.id'))
Пример #2
0
class Category(db.Model):
    __tablename__ = 'category'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), unique=True)
    description = db.Column(db.String(100), nullable=True)
    image_file = db.Column(db.String,
                           nullable=False,
                           default='default category.jpg')
Пример #3
0
class Admin(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    superusername = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))

    # relationships

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
Пример #4
0
class Deal(db.Model):
    # 1 user to multi deals
    id = db.Column(db.Integer, primary_key=True)
    time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    # link the deal to the user who makes the deal
    by_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    by = db.relationship('User', backref='deals')

    # link the deal to the item
    item_id = db.Column(db.Integer, db.ForeignKey('post.id'))
    item = db.relationship('Post', backref='deals')
    admin = db.Column(db.Integer, db.ForeignKey('admin.id'))
Пример #5
0
class Category(db.Model):
    __tablename__ = 'category'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), unique=True)
    description = db.Column(db.String(100), nullable=True)
    image_file = db.Column(db.String,
                           nullable=False,
                           default='default category.jpg')
    #relationships
    post_id = db.relationship("Post",
                              secondary=post_category_collections,
                              backref='categories',
                              lazy='dynamic')
    admin = db.Column(db.Integer, db.ForeignKey('admin.id'))
Пример #6
0
class Admin(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    superusername = db.Column(db.String(20))
    password_hash = db.Column(db.String(128))
    # relationships
    posts = db.relationship('Post')
    users = db.relationship('User')
    deals = db.relationship('Deal')
    categories = db.relationship('Category')

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def validate_password(self, password):
        return check_password_hash(self.password_hash, password)
Пример #7
0
class Post(db.Model):
    __tablename__ = 'post'
    __searchable__ = ['title', 'subtitle', 'content']
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(20), nullable=False)
    subtitle = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    price = db.Column(db.Integer, nullable=False, default=0)
    image_file = db.Column(db.String,
                           nullable=False,
                           default='default post.jpg')
    likes = db.Column(db.Integer, nullable=True, default=0)
    #relationships
    admin = db.Column(db.Integer, db.ForeignKey('admin.id'))
    # category_id = db.relationship("Category", secondary= post_category_collections, backref = "posts", lazy = 'dynamic')
    category_id = db.Column(db.Integer, nullable=True, default='Unclassified')
Пример #8
0
class User(db.Model, UserMixin):
    __searchable__ = ['username']
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    image_file = db.Column(db.String,
                           nullable=False,
                           default='default profile.jpg')
    # relationships
    admin = db.Column(db.Integer, db.ForeignKey('admin.id'))
Пример #9
0
    time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    # link the deal to the user who makes the deal
    by_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    by = db.relationship('User', backref='deals')

    # link the deal to the item
    item_id = db.Column(db.Integer, db.ForeignKey('post.id'))
    item = db.relationship('Post', backref='deals')
    admin = db.Column(db.Integer, db.ForeignKey('admin.id'))


# post 和 category 实际为多对多,应该创建关联表进行连接
post_category_collections = db.Table(
    "post_category_collections",
    db.Column('post_id', db.Integer, db.ForeignKey("post.id")),
    db.Column('category_id', db.Integer, db.ForeignKey("category.id")))


class Post(db.Model):
    __tablename__ = 'post'
    __searchable__ = ['title', 'subtitle', 'content']
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(20), nullable=False)
    subtitle = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    price = db.Column(db.Integer, nullable=False, default=0)
    image_file = db.Column(db.String,
Пример #10
0
class User(db.Model, UserMixin):
    __searchable__ = ['username']
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    phone_number = db.Column(db.String(20), unique=False, nullable=True)
    password = db.Column(db.String(60), nullable=False)
    image_file = db.Column(db.String,
                           nullable=False,
                           default='default profile.jpg')
    membership = db.Column(db.String, nullable=False,
                           default='none')  # False or True
    membership_date = db.Column(db.DateTime,
                                nullable=False,
                                default=datetime.utcnow)
    vip1 = db.Column(db.String, nullable=False, default='none')
    vip1_try_out = db.Column(db.String, nullable=False, default='yes')
    vip1_expire_date = db.Column(db.DateTime,
                                 nullable=False,
                                 default=datetime.utcnow)
    vip2 = db.Column(db.String, nullable=False, default='none')
    vip2_try_out = db.Column(db.String, nullable=False, default='yes')
    vip2_expire_date = db.Column(db.DateTime,
                                 nullable=False,
                                 default=datetime.utcnow)
    invitation_code_vip1 = db.Column(db.String(8), nullable=True)
    invitation_code_vip2 = db.Column(db.String(8), nullable=True)
    deals = db.relationship('Deal', backref='by')

    def get_reset_token(self, expires_sec=1800):
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.query.get(user_id)
Пример #11
0
class Post(db.Model):
    __tablename__ = 'post'
    __searchable__ = [
        'title_en', 'title_cn', 'subtitle_en', 'subtitle_cn', 'content_en',
        'content_cn'
    ]
    id = db.Column(db.Integer, primary_key=True)
    title_en = db.Column(db.String(20), nullable=False)
    title_cn = db.Column(db.String(20), nullable=False)
    subtitle_en = db.Column(db.String(100), nullable=False)
    subtitle_cn = db.Column(db.String(100), nullable=False)
    content_en = db.Column(db.Text, nullable=False)
    content_cn = db.Column(db.Text, nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    price = db.Column(db.Integer, nullable=False, default=0)
    image_file = db.Column(db.String, nullable=False, default='LiyuanLing.png')
    source = db.Column(db.String, nullable=True, default='ins')
    avater = db.Column(db.String, nullable=True)
    picture_list = db.Column(db.String, nullable=True)
    classification = db.Column(db.String, nullable=False, default='vip2')
    #relationships
    deals = db.relationship('Deal', backref='what')
    # category_id = db.relationship("Category", secondary= post_category_collections, backref = "posts", lazy = 'dynamic')
    # category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable = True, default = 'unclassified')
    categories = db.relationship('Category',
                                 secondary=post_category_collections,
                                 backref='posts')
    likeby = db.relationship('User',
                             secondary=post_user_colloections,
                             backref='like')
    total_like = db.Column(db.Integer, nullable=True, default=0)
    total_buy = db.Column(db.Integer, nullable=True, default=0)