Beispiel #1
0
class AnswerComment(db.Model):
    __tablename__ = 'AnswerComment'
    commentId = db.Column(db.BigInteger,
                          primary_key=True,
                          nullable=False,
                          autoincrement=True)
    parentId = db.Column(db.BigInteger,
                         db.ForeignKey('AnswerComment.commentId',
                                       ondelete='CASCADE'),
                         nullable=True)
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.id', ondelete='CASCADE'),
                       nullable=False)
    answerId = db.Column(db.BigInteger,
                         db.ForeignKey('Answer.answerId', ondelete='CASCADE'),
                         nullable=False)
    content = db.Column(db.Text, nullable=False)
    commentTime = db.Column(db.DateTime,
                            default=datetime.now(),
                            nullable=False)

    # answerChildComments = db.relationship('AnswerComment', backref=db.backref('answerChildComments'))

    def get_user(self):
        return User.query.filter(User.id == self.userId).first().username

    def get_parent_comment(self):
        return AnswerComment.query.filter(
            self.parentId == AnswerComment.commentId).first()

    def get_parent_comment_user(self):
        return AnswerComment.query.filter(
            self.parentId == AnswerComment.commentId).first().get_user()
Beispiel #2
0
class QuestionTag(db.Model):
    __tablename__ = 'QuestionTag'
    questionId = db.Column(db.BigInteger,
                           db.ForeignKey('Question.questionId',
                                         ondelete='CASCADE'),
                           primary_key=True,
                           nullable=False)
    tagId = db.Column(db.BigInteger,
                      db.ForeignKey('Tag.tagId', ondelete='CASCADE'),
                      primary_key=True,
                      nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)

    def __init__(self, questionId, tagId, time):
        self.questionId = questionId
        self.tagId = tagId
        self.time = time

    # 将类转为字典,然后响应json
    def as_dict(obj):
        return dict((col.name, getattr(obj, col.name)) \
                    for col in class_mapper(obj.__class__).mapped_table.c)

    def get_object(self):
        return Tag.query.filter(Tag.tagId == self.tagId).first()

    def get_item(self):
        return Question.query.filter(
            Question.questionId == self.questionId).first()
Beispiel #3
0
class Blogcol(db.Model):
    __tablename__ = 'blogcol'
    id = db.Column(db.Integer, primary_key=True)  # 编号

    blog_id = db.Column(db.Integer, db.ForeignKey('blog.id'))  # 所属博客
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 收藏博客的时间
Beispiel #4
0
class Comment(db.Model):
    __tablename__ = "comment"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    content = db.Column(db.Text)  # 内容

    blog_id = db.Column(db.Integer, db.ForeignKey('blog.id'))  # 所属博客
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    add_time = db.Column(db.DateTime, index=True, default=datetime.now)  # 收藏博客的时间
Beispiel #5
0
class Moviecol(db.Model):
    __tablename__ = "moviecol"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 所属电影
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Moviecol %r>" % self.id
Beispiel #6
0
class Follow(db.Model):
    __tablename__ = 'Follow'
    followerId = db.Column(db.BigInteger,
                           db.ForeignKey('User.id', ondelete='CASCADE'),
                           primary_key=True)
    followedId = db.Column(db.BigInteger,
                           db.ForeignKey('User.id', ondelete='CASCADE'),
                           primary_key=True)
    followTime = db.Column(db.DateTime, default=datetime.now())
Beispiel #7
0
class UnlikeAnswer(db.Model):
    __tablename__ = 'UnlikeAnswer'
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.id', ondelete='CASCADE'),
                       primary_key=True)
    answerId = db.Column(db.BigInteger,
                         db.ForeignKey('Answer.answerId', ondelete='CASCADE'),
                         primary_key=True)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #8
0
class Entry(db.Model):
    __tablename__ = 'm_entry'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), nullable=True)
    description = db.Column(db.String(255), nullable=True)
    createtime = db.Column(db.DateTime, default=datetime.now)
    result = db.Column(db.String(255), nullable=True, default="")
    project_id = db.Column(db.Integer, db.ForeignKey('m_project.id'))
    language_id = db.Column(db.Integer, db.ForeignKey('m_language.id'))
Beispiel #9
0
class Comment(db.Model):
    __tablename__ = "comment"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    content = db.Column(db.Text)  # 内容
    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 所属电影
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Comment %r>" % self.id
Beispiel #10
0
class LikeArticle(db.Model):
    __tablename__ = 'LikeArticle'
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.id', ondelete='CASCADE'),
                       primary_key=True)
    articleId = db.Column(db.BigInteger,
                          db.ForeignKey('Article.articleId',
                                        ondelete='CASCADE'),
                          primary_key=True)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #11
0
class QuestionTag(db.Model):
    __tablename__ = 'QuestionTag'
    questionId = db.Column(db.BigInteger,
                           db.ForeignKey('Question.questionId'),
                           primary_key=True,
                           nullable=False)
    tagId = db.Column(db.BigInteger,
                      db.ForeignKey('Tag.tagId'),
                      primary_key=True,
                      nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #12
0
class UserTag(db.Model):
    __tablename__ = 'UserTag'
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.userId'),
                       primary_key=True,
                       nullable=False)
    tagId = db.Column(db.BigInteger,
                      db.ForeignKey('Tag.tagId'),
                      primary_key=True,
                      nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #13
0
class FavoriteQuestion(db.Model):
    __tablename__ = 'FavoriteQuestion'
    questionId = db.Column(db.BigInteger,
                           db.ForeignKey('Question.questionId'),
                           primary_key=True,
                           nullable=False)
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.userId'),
                       primary_key=True,
                       nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #14
0
class FavoriteArticle(db.Model):
    __tablename__ = 'FavoriteArticle'
    articleId = db.Column(db.BigInteger,
                          db.ForeignKey('Article.articleId'),
                          primary_key=True,
                          nullable=False)
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.userId'),
                       primary_key=True,
                       nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #15
0
class Moviecol(db.Model):
    __tablename__ = "moviecol"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 所属视频
    movie = db.relationship('Movie', backref='moviecols')  # 视频收藏外键关系关联
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    user = db.relationship('User', backref='moviecols')  # 视频收藏外键关系关联
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Moviecol %r>" % self.id
Beispiel #16
0
class ArticleTag(db.Model):
    __tablename__ = 'ArticleTag'
    articleId = db.Column(db.BigInteger,
                          db.ForeignKey('Article.articleId'),
                          primary_key=True,
                          nullable=False)
    tagId = db.Column(db.BigInteger,
                      db.ForeignKey('Tag.tagId'),
                      primary_key=True,
                      nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #17
0
class Answer(db.Model):
    __tablename__ = 'Answer'
    answerId = db.Column(db.BigInteger,
                         primary_key=True,
                         nullable=False,
                         autoincrement=True)
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.userId'),
                       nullable=False)
    questionId = db.Column(db.BigInteger,
                           db.ForeignKey('Question.questionId'),
                           nullable=False)
    content = db.Column(db.Text, nullable=False)
    answerTime = db.Column(db.DateTime, default=datetime.now(), nullable=False)
Beispiel #18
0
class UserTag(db.Model):
    __tablename__ = 'UserTag'
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.id', ondelete='CASCADE'),
                       primary_key=True,
                       nullable=False)
    tagId = db.Column(db.BigInteger,
                      db.ForeignKey('Tag.tagId', ondelete='CASCADE'),
                      primary_key=True,
                      nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)

    def get_object(self):
        return Tag.query.filter(Tag.tagId == self.tagId).first()
Beispiel #19
0
class Comment(db.Model):
    __tablename__ = "comment"
    id = db.Column(db.Integer, primary_key=True)  # 编号
    content = db.Column(db.Text)  # 内容

    movie_id = db.Column(db.Integer, db.ForeignKey('movie.id'))  # 所属视频
    movie = db.relationship('Movie', backref='comments')  # 评论外键关系关联

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    user = db.relationship('User', backref='comments')  # 评论外键关系关联

    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间

    def __repr__(self):
        return "<Comment %r>" % self.id
Beispiel #20
0
class ProtestSubmission(db.Model):
    __tablename__ = "protestsubmission"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    protest_id = db.Column(db.Integer, db.ForeignKey("protest.id"))
    address = db.Column(db.String(200))
    # lat and lng are hidden to the user on the ui
    lat = db.Column(db.Float(7))
    lng = db.Column(db.Float(7))
    description = db.Column(db.String(120))
    size = db.Column(db.String(120))
    issue_locality = db.Column(db.String(120))
    issue_type = db.Column(db.String(120))
    timestamp = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    def to_json(self):
        return {
            'id': self.id,
            'protest_id': self.protest_id,
            'address': self.address,
            'lat': self.lat,
            'lng': self.lng,
            'description': self.description,
            'size': self.size,
            'issue_locality': self.issue_locality,
            'issue_type':
            self.issue_type.split(',') if self.issue_type else []
        }
Beispiel #21
0
class Tag(db.Model):
    __tablename__ = 'Tag'
    tagId = db.Column(db.BigInteger,
                      primary_key=True,
                      nullable=False,
                      autoincrement=True)
    parentId = db.Column(db.BigInteger,
                         db.ForeignKey('Tag.tagId'),
                         nullable=True)
    name = db.Column(db.Unicode(30), nullable=False)
    description = db.Column(db.Text, nullable=False)
    popularity = db.Column(db.Integer, default=0, nullable=False)
    tagUsers = db.relationship('UserTag',
                               foreign_keys=[UserTag.userId],
                               backref=db.backref('users', lazy='joined'),
                               lazy='dynamic',
                               cascade='all, delete-orphan')
    articles = db.relationship('ArticleTag',
                               foreign_keys=[ArticleTag.articleId],
                               backref=db.backref('articles', lazy='joined'),
                               lazy='dynamic',
                               cascade='all, delete-orphan')
    problems = db.relationship('ProblemTag',
                               foreign_keys=[QuestionTag.questionId],
                               backref=db.backref('problems', lazy='joined'),
                               lazy='dynamic',
                               cascade='all, delete-orphan')
Beispiel #22
0
class FavoriteQuestion(db.Model):
    __tablename__ = 'FavoriteQuestion'
    questionId = db.Column(db.BigInteger,
                           db.ForeignKey('Question.questionId',
                                         ondelete='CASCADE'),
                           primary_key=True,
                           nullable=False)
    userId = db.Column(db.BigInteger,
                       db.ForeignKey('User.id', ondelete='CASCADE'),
                       primary_key=True,
                       nullable=False)
    time = db.Column(db.DateTime, default=datetime.now(), nullable=False)

    def get_object(self):
        return Question.query.filter(
            Question.questionId == self.questionId).first()
Beispiel #23
0
class Menu(db.Model):
    __tablename__ = 'menus'
    id = db.Column(db.Integer, primary_key=True)
    exclude_columns = ['created_at', 'updated_at']
    auth_name = Column(db.String(32), nullable=False, index=True)
    path = Column(db.String(256), nullable=False)
    level = Column(db.Integer, nullable=True)
    created_at = Column(db.Date, nullable=True, default=datetime.now)
    updated_at = Column(db.Date, nullable=True, default=datetime.now)
    parent_id = db.Column(db.Integer, db.ForeignKey('menus.id'))
    children = db.relationship('Menu', back_populates='parent')
    parent = db.relationship('Menu',
                             back_populates='children',
                             remote_side=[id])

    # role_id = Column(db.Integer, db.ForeignKey('roles.id'))
    # role = relationship('Role', backref=db.backref('menus', order_by=id))
    # roles = relationship('Role', secondary=association_table, back_populates="menus")
    # 将back_populates修改为db.backref() 指定 lazy = 'dynamic' 参数,关系两侧返回的查询都可接受额外的过滤器
    roles = relationship('Role',
                         secondary=association_table,
                         backref=db.backref("menus", lazy='dynamic'))

    def __init__(self, auth_name, path, **kwargs):
        db.Model.__init__(self, auth_name=auth_name, path=path, **kwargs)
Beispiel #24
0
class CourseFilter(db.Model):
    __tablename__ = 'course_filter'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    positive = db.Column(db.Boolean)
    user_id = db.Column(db.String(36), db.ForeignKey('user.id'))
    course_ids = db.relationship('CourseIdentifier',
                                 backref='filter',
                                 lazy='dynamic')

    def predicate(self, item):
        # Check if the item matches the String course_id values, not the model objects
        return (item in [course_id.id
                         for course_id in self.course_ids]) ^ self.positive

    def apply(self, realm_ids):
        for realm_id in realm_ids[:]:
            if self.predicate(realm_id):
                realm_ids.remove(realm_id)

    def to_json(self):
        return {
            'id': self.id,
            'positive': self.positive,
            'course_ids': [id.to_json() for id in self.course_ids],
        }

    def __repr__(self):
        return f'CourseFilter<{", ".join(str(course_id) for course_id in self.course_ids)}>'
Beispiel #25
0
class Order(db.Model):
    __tablename__ = 'orders'
    id = Column(db.Integer, primary_key=True)
    order_number = Column(db.String(200), nullable=False, index=True)
    trad_no = Column(db.String(200), nullable=True)
    invoice_titile = Column(db.String(500), nullable=True)
    invoice_company = Column(db.String(500), nullable=True)
    invoice_content = Column(db.String(500), nullable=True)
    consignee_address = Column(db.String(500), nullable=True)
    order_price = Column(db.Float, nullable=False, default=1.0)
    pay_status = Column(
        db.Enum('未支付', '已支付', '已取消'),
        default='未支付', doc='订单状态:未支付, 已支付, 已取消')
    is_send = Column(db.Boolean(), default=False, doc='False代表非热销商品')

    created_at = Column(db.Date, nullable=True, default=datetime.now)
    updated_at = Column(db.Date, nullable=True, default=datetime.now)

    user_id = Column(db.Integer, db.ForeignKey('users.id'))
    user = relationship('User', back_populates='orders')

    goods = relationship('Good', secondary=goods_orders, back_populates="orders", lazy='dynamic')

    def __init__(
            self, order_number, trad_no, invoice_titile, invoice_company,
            invoice_content, consignee_address, order_price, pay_status,
            is_send, **kwargs):
        db.Model.__init__(
            self,
            order_number=order_number, trad_no=trad_no,
            invoice_titile=invoice_titile, invoice_company=invoice_company,
            invoice_content=invoice_content, consignee_address=consignee_address,
            order_price=order_price, pay_status=pay_status,
            is_send=is_send, **kwargs)
Beispiel #26
0
class Posts(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    content = db.Column(db.Text)
    timestamp = db.Column(DateTime, nullable=False, default=datetime.utcnow())
    rid = db.Column(db.Integer, index=True, default=0)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'))
    __mapper_args__ = {"order_by": timestamp.desc()}
Beispiel #27
0
class Photo(db.Model):
    __tablename__ = 'photos'
    id = db.Column(db.Integer, primary_key=True)
    photo_name = Column(db.String(500), nullable=False, index=True)
    # photo_url = Column(db.Url(), nullable=False, index=True)
    photo_url = Column(db.String(500), nullable=False, index=True)
    good_id = Column(db.Integer, db.ForeignKey('goods.id'))
    good = relationship('Good', back_populates='photos')
Beispiel #28
0
class User(db.Model):  #用户表
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(256), nullable=False)
    #     定义wai建
    article_id = db.Column(db.Integer,
                           db.ForeignKey('article.id'),
                           nullable=True)
Beispiel #29
0
class Edit(db.Model):
    __tablename__ = 'edit'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(50), nullable=False)
    content = db.Column(db.Text, nullable=False)
    datetime = db.Column(db.DateTime, default=datetime.now)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', backref=db.backref('edits'))
Beispiel #30
0
class Posts(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(64))
    content = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow())
    rid = db.Column(db.Integer, index=True, default=0)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'))