Esempio n. 1
0
class Friend(db.Model):
    """ 好友/关注 """
    __tablename__ = 'friend'
    id = db.Column(db.Integer, primary_key=True)
    from_user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    to_user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    status = db.Column(db.Enum(FriendEnum))
    created_at = db.Column(db.DateTime)

    def __repr__(self):
        return '<Friend %r>' % self.id
Esempio n. 2
0
class Comment(db.Model):
    """ 评论 """
    __tablename__ = 'comment'
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String(160), nullable=False)

    is_valid = db.Column(db.Boolean, default=True)
    created_at = db.Column(db.DateTime)

    weibo_id = db.Column(db.Integer, db.ForeignKey('weibo.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Weibo %r>' % self.name
Esempio n. 3
0
class Role(db.Model):
    """ 角色 """
    __tablename__ = 'role'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)

    perms = db.Column(db.Enum(PermsEnum))

    is_valid = db.Column(db.Boolean, default=True)
    created_at = db.Column(db.DateTime)
    updateed_at = db.Column(db.DateTime)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  #这一句话非常重要

    def __repr__(self):
        return '<Role %r>' % self.name
Esempio n. 4
0
class Weibo(db.Model):
    """ wb """
    __tablename__ = 'weibo'
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String(160), nullable=False)

    is_valid = db.Column(db.Boolean, default=True)
    created_at = db.Column(db.DateTime)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  #又是外键

    at_users = db.relationship('WeiboAtUser', backref='weibo')
    rel_topics = db.relationship('WeiboRelTopic', backref='weibo')
    comments = db.relationship('Comment', backref='weibo', lazy='dynamic')

    def get_comments_count(self):
        """ 获取评论次数 """
        return self.comments.count()

    def get_content(self):
        """ 替换@和话题 """
        content = self.content

        # 替换@
        def replace_at(match_obj):
            return '<a href="%s">%s</a>' % (url_for(
                'user_detail',
                nickname=match_obj.group(1)), match_obj.group(0))

        content = re.sub(constants.AT_USER_PATTEN, replace_at, content)

        # 替换话题
        def replace_topic(match_obj):
            return '<a href="%s">%s</a>' % (url_for(
                'topic_detail', name=match_obj.group(1)), match_obj.group(0))

        content = re.sub(constants.TOPIC_PATTEN, replace_topic, content)
        return content

    def __repr__(self):
        return '<Weibo %r>' % self.content
Esempio n. 5
0
class WeiboRelTopic(db.Model):
    """ wb讨论话题 """
    __tablename__ = 'weibo_rel_topic'
    id = db.Column(db.Integer, primary_key=True)
    weibo_id = db.Column(db.Integer, db.ForeignKey('weibo.id'))
    topic_id = db.Column(db.Integer, db.ForeignKey('topic.id'))
Esempio n. 6
0
class WeiboAtUser(db.Model):
    """ wb@用户 """
    __tablename__ = 'weibo_at_user'
    id = db.Column(db.Integer, primary_key=True)
    weibo_id = db.Column(db.Integer, db.ForeignKey('weibo.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))