class StarModel(db.Model): __tablename__ = 'star' id = db.Column(db.Integer, primary_key=True, autoincrement=True) post_id = db.Column(db.String(150), db.ForeignKey("posts.id")) author_id = db.Column(db.String(100), db.ForeignKey("front_user.id")) author = db.relationship("FrontUserModel", backref='stars') post = db.relationship("PostsModel", backref='stars')
class AdvertisementModel(db.Model): __tablename__ = 'advertisement' id = db.Column(db.Integer, primary_key=True, autoincrement=True) author_id = db.Column(db.Integer, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) img_url = db.Column(db.String(400)) link_url = db.Column(db.String(200)) is_using = db.Column(db.Integer, default=1)
class CollectModel(db.Model): __tablename__ = 'collect' id = db.Column(db.Integer, primary_key=True, autoincrement=True) collect_time = db.Column(db.DateTime, default=datetime.now) post_id = db.Column(db.String(150), db.ForeignKey("posts.id")) author_id = db.Column(db.String(100), db.ForeignKey("front_user.id")) post = db.relationship("PostsModel", backref='collects') author = db.relationship("FrontUserModel", backref='collects')
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) author_id = db.Column(db.String(150), db.ForeignKey("front_user.id")) author = db.relationship("FrontUserModel", backref='posts')
class BannerModel(db.Model): __tablename__ = 'banner' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(100)) weight = db.Column(db.String(20)) img_url = db.Column(db.String(400)) link_url = db.Column(db.String(200)) content = db.Column(db.Text) create_time = db.Column(db.DateTime, default=datetime.now)
class AlbumModel(db.Model): __tablename__ = 'album' id = db.Column(db.Integer,primary_key=True,autoincrement=True) name = db.Column(db.String(150),nullable=False) create_time = db.Column(db.DateTime,default=datetime.now) see_count = db.Column(db.Integer,default=0) desc = db.Column(db.Text) power = db.Column(db.Integer,default=0) author_id = db.Column(db.String(150), db.ForeignKey("front_user.id")) author = db.relationship("FrontUserModel", backref='albums')
class FocusModel(db.Model): __tablename__ = 'focus' id = db.Column(db.Integer, primary_key=True, autoincrement=True) focus_time = db.Column(db.DateTime, default=datetime.now) own_user_id = db.Column(db.String(150), nullable=False) author_id = db.Column(db.String(100), db.ForeignKey("front_user.id"), nullable=False) author = db.relationship("FrontUserModel", backref='focuses')
class ErrorModel(db.Model): __tablename__ = 'error' id = db.Column(db.Integer, primary_key=True, autoincrement=True) type = db.Column(db.String(50), nullable=False) reporter = db.Column(db.String(150), nullable=False) bereporter = db.Column(db.String(150), nullable=False) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) place = db.Column(db.String(150)) status = db.Column(db.Integer, default=0)
class GroupModel(db.Model): __tablename__ = 'group' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(150)) avatar = db.Column(db.String(150)) create_time = db.Column(db.DateTime, default=datetime.now) create_user = db.Column(db.String(100), nullable=False) point = db.Column(db.Integer, default=0) desc = db.Column(db.Text) users = db.relationship("FrontUserModel", backref='groups', secondary=user_group)
class CommentModel(db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) post_id = db.Column(db.String(150), db.ForeignKey("posts.id")) author_id = db.Column(db.String(100), db.ForeignKey("front_user.id")) origin_comment_id = db.Column(db.Integer, db.ForeignKey("comment.id")) post = db.relationship("PostsModel", backref="comments") author = db.relationship("FrontUserModel", backref="comments") origin_comment = db.relationship("CommentModel", backref="replys", remote_side=[id])
class Album_StarModel(db.Model): __tablename__ = 'album_star' id = db.Column(db.Integer,primary_key=True,autoincrement=True) album_id = db.Column(db.Integer, db.ForeignKey("album.id")) author_id = db.Column(db.String(100),db.ForeignKey("front_user.id")) author = db.relationship("FrontUserModel",backref='album_stars') album = db.relationship("AlbumModel",backref='album_stars')
class ImagesModel(db.Model): __tablename__ = 'image' id = db.Column(db.Integer,primary_key=True,autoincrement=True) url = db.Column(db.String(150)) create_time = db.Column(db.DateTime, default=datetime.now) album_id = db.Column(db.Integer,db.ForeignKey("album.id")) album = db.relationship("AlbumModel",backref='images')
class UserModel(db.Model): __tablename__ = 'user' id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid) username = db.Column(db.String(50)) _password = db.Column(db.String(100), nullable=False) @property def password(self): return self._password @password.setter def password(self, raw_password): self._password = generate_password_hash(raw_password) def check_pwd(self, raw_password): result = check_password_hash(self.password, raw_password) return result
class GroupManageModel(db.Model): __tablename__ = 'group_manage' id = db.Column(db.Integer, primary_key=True, autoincrement=True) group_id = db.Column(db.Integer, db.ForeignKey("group.id")) author_id = db.Column(db.String(150), db.ForeignKey("front_user.id")) author = db.relationship("FrontUserModel", backref='manager') group = db.relationship("GroupModel", backref='managers')
class CMSUserModel(db.Model): __tablename__ = 'cms_user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(50), nullable=False) _password = db.Column(db.String(150), nullable=False) email = db.Column(db.String(50), nullable=False, unique=True) join_time = db.Column(db.DateTime, default=datetime.now) def __init__(self, username, password, email): self.username = username self.password = password self.email = email @property def password(self): return self._password @password.setter def password(self, raw_password): self._password = generate_password_hash(raw_password) def check_pwd(self, raw_password): result = check_password_hash(self.password, raw_password) return result
class AlbumTagsModel(db.Model): __tablename__ = 'img_tag' id = db.Column(db.Integer,primary_key=True,autoincrement=True) tagname = db.Column(db.String(150)) album = db.relationship("AlbumModel",backref='tags',secondary=album_tag)
class HighlightModel(db.Model): __tablename__ = 'hightlight_post' id = db.Column(db.Integer, primary_key=True, autoincrement=True) post_id = db.Column(db.String(150), db.ForeignKey("posts.id")) create_time = db.Column(db.DateTime, default=datetime.now) post = db.relationship("PostsModel", backref='hightlight')
class FrontUserModel(db.Model): __tablename__ = 'front_user' id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid) username = db.Column(db.String(50)) _password = db.Column(db.String(100), nullable=False) email = db.Column(db.String(50), unique=True, nullable=False) telephone = db.Column(db.String(11)) qq = db.Column(db.String(20), default='未填写') avatar = db.Column( db.String(300), default= 'https://donghaocms.oss-cn-beijing.aliyuncs.com/avater/default.jpg') old_avater = db.Column(db.String(300)) my_web = db.Column(db.String(100)) address = db.Column(db.String(150)) weibo_id = db.Column(db.String(80)) gender = db.Column(db.String(100), default='秘密') signature = db.Column(db.Text, default='这家伙很懒,什么都没有留下~') join_time = db.Column(db.DateTime, default=datetime.now) points = db.Column(db.Integer, default=0) nickname = db.Column(db.String(100), default='新用户') realname = db.Column(db.String(100), default='未填写') charactors = db.Column(db.Integer, default=0) is_active = db.Column(db.Integer, default=1) color = db.Column(db.String(20), default='#ffffff') def __init__(self, *args, **kwargs): if 'password' in kwargs: self.password = kwargs.get('password') kwargs.pop('password') super(FrontUserModel, self).__init__(*args, **kwargs) @property def password(self): return self._password @password.setter def password(self, raw_password): self._password = generate_password_hash(raw_password) def check_pwd(self, raw_password): result = check_password_hash(self.password, raw_password) return result
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)