Example #1
0
class Article(BaseModel):
    __tablename__ = 'article'
    title = db.Column(db.String(64), nullable=False)  # 标题
    describe = db.Column(db.String(256), nullable=True)  # 文章简述
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    art_type = db.Column(db.Integer, db.ForeignKey('article_type.id'))
    us = db.Column(db.Integer, db.ForeignKey('user.id'))
Example #2
0
class PostsModel(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.String(150), primary_key=True, default=shortuuid.uuid)
    title = db.Column(db.String(150), nullable=False)
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    # 阅读统计
    read_count = db.Column(db.Integer, default=0)
    # 作者ID 绑定
    author_id = db.Column(db.String(150), db.ForeignKey("user.id"))
    author = db.relationship("UserModel", backref='posts')
Example #3
0
class UserModel(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.String(150), primary_key=True, default=shortuuid.uuid)
    username = db.Column(db.String(64), default='新用户...')
    password_hash = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(255), unique=True, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    # 经验
    points = db.Column(db.Integer, default=0)
    is_active = db.Column(db.Boolean, default=True)
    gender = db.Column(db.String(10), default='秘密')
    # 字数
    charactors = db.Column(db.Integer, default=0)
    signature = db.Column(db.Text, default='这家伙很懒,什么都没有留下~')
    avatar = db.Column(
        db.String(300),
        default=
        "https://donghaocms.oss-cn-beijing.aliyuncs.com/avater/default.jpg")

    # 保护字段
    @property
    def password(self):
        raise ArithmeticError("密码是不可读属性")

    # 生成hash
    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    # 校验
    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
Example #4
0
class User(BaseModel):
    # 表名
    __tablename__ = 'user'
    # 字段
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), unique=True, nullable=False)
    _password = db.Column(db.String(128), nullable=False)
    email = db.Column(db.String(255), unique=True)
    header_img = db.Column(db.String(255), nullable=True)  # 头像
    phone = db.Column(db.String(255), unique=True)
    is_delete = db.Column(db.Boolean, default=False)  # 逻辑删除用户

    #设置密码
    @property
    def password(self):
        raise AttributeError("你没有有权限")

    @password.setter
    def password(self, password):
        self._password = generate_password_hash(password)

    def verify_password(self, password):
        # 检查密码
        return check_password_hash(self.password, password)
Example #5
0
class ArticleType(BaseModel):
    __tablename__ = 'article_type'
    type_name = db.Column(db.String(64), nullable=False)  # 类型名
    use = db.Column(db.Integer, db.ForeignKey('user.id'))
Example #6
0
class TagsModel(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    tagname = db.Column(db.String(150))
    posts = db.relationship("PostsModel", backref='tags', secondary=post_tag)