class Moviecol(mysql_db.Model): __tablename__ = "moviecol" id = mysql_db.Column(mysql_db.Integer, primary_key=True) # 编号 movie_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('movie.id')) user_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('user.id')) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) def __repr__(self): return '<Moviecol %r' % self.id
class Comment(mysql_db.Model): __tablename__ = 'comment' id = mysql_db.Column(mysql_db.Integer, primary_key=True) content = mysql_db.Column(mysql_db.Text) user_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('user.id')) movie_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('movie.id')) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) def __repr__(self): return '<Comment %r>' % self.id
class AdminLog(mysql_db.Model): __tablename__ = 'adminlog' id = mysql_db.Column(mysql_db.Integer, primary_key=True) ip = mysql_db.Column(mysql_db.String(64)) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) admin_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('admin.id')) def __repr__(self): return '<Admin %r>' % self.id
class UserLog(mysql_db.Model): __tablename__ = 'userlog' id = mysql_db.Column(mysql_db.Integer, primary_key=True) user_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('user.id'), onupdate=True) ip = mysql_db.Column(mysql_db.String(64)) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) def __repr__(self): return '<UserLog %r>' % self.id
class CommentReply(BaseModel): __bind_key__ = 'mysql_bind' __tablename__ = 'comment_reply' id = db.Column('id', db.BIGINT, primary_key=True, autoincrement=True) comment_id = db.Column('comment_id', db.BIGINT, db.ForeignKey('comment.id'), nullable=False, comment='评论ID') reply_type = db.Column('reply_type', db.Integer, nullable=False, comment='评论回复类型,0-针对评论回复,1-针对回复的回复') content = db.Column('content', db.Text, nullable=False, comment='评论内容') reply_id = db.Column('reply_id', db.BIGINT, nullable=False, comment='回复目标ID') uid = db.Column('uid', db.BIGINT, nullable=False, comment='回复人的ID') to_uid = db.Column('to_uid', db.BIGINT, nullable=False, comment='回复目标人的ID') like = db.Column('like', db.BIGINT, nullable=False, default=0, comment='点赞数量') tread = db.Column('tread', db.BIGINT, nullable=False, default=0, comment='踩数量') ctime = db.Column('ctime', db.DateTime, nullable=False, default=datetime.now(), comment='创建时间') mtime = db.Column('mtime', db.DateTime, nullable=False, default=datetime.now(), comment='更新时间') _default_fields = [ "id", "comment_id", "reply_type", "content", "uid", "to_uid", "like", "tread", "replys", "ctime", "mtime" ]
class Admin( mysql_db.Model, ): __tablename__ = 'admin' __table_args__ = {"useexisting": True} id = mysql_db.Column(mysql_db.Integer, primary_key=True) name = mysql_db.Column(mysql_db.String(64), unique=True) pwd = mysql_db.Column(mysql_db.String(128)) is_super = mysql_db.Column(mysql_db.SmallInteger, default=1) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) adminlogs = mysql_db.relationship("AdminLog", backref='admin') oplogs = mysql_db.relationship("OpLog", backref='admin') role_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('role.id')) def __repr__(self): return '<Admin %r>' % self.name def check_pwd(self, pwd): from werkzeug.security import check_password_hash return check_password_hash(self.pwd, pwd)
class Movie(mysql_db.Model): __tablename__ = 'movie' id = mysql_db.Column(mysql_db.Integer, primary_key=True) name = mysql_db.Column(mysql_db.String(64), unique=True) url = mysql_db.Column(mysql_db.String(128), unique=True) info = mysql_db.Column(mysql_db.Text) logo = mysql_db.Column(mysql_db.String(128), unique=True) score = mysql_db.Column(mysql_db.BigInteger) playnum = mysql_db.Column(mysql_db.Integer) area = mysql_db.Column(mysql_db.String(64)) release_time = mysql_db.Column(mysql_db.Date) length = mysql_db.Column(mysql_db.String(64)) # 播放时长 category_id = mysql_db.Column(mysql_db.Integer, mysql_db.ForeignKey('category.id')) moviecol = mysql_db.relationship("Moviecol", backref='movie') addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) comments = mysql_db.relationship("Comment", backref='movie') def __repr__(self): return '<Movie %r' % self.name
class Comment(BaseModel): ''' 评论 ''' __bind_key__ = 'mysql_bind' __tablename__ = 'comment' id = db.Column('id', db.BIGINT, nullable=False, primary_key=True, autoincrement=True) aid = db.Column('aid', db.BIGINT, db.ForeignKey('article.id'), nullable=False, comment='文章ID') uid = db.Column('uid', db.BIGINT, nullable=False, comment='评论人ID') content = db.Column('content', db.TEXT, nullable=False, comment='评论内容') like = db.Column('like', db.BIGINT, nullable=False, default=0, comment='点赞数量') tread = db.Column('tread', db.BIGINT, nullable=False, default=0, comment='踩数量') ctime = db.Column('ctime', db.DateTime, nullable=False, default=datetime.now(), comment='创建时间') mtime = db.Column('mtime', db.DateTime, nullable=False, default=datetime.now(), comment='更新时间') replys = db.relationship('CommentReply') _default_fields = [ "id", "content", "like", "tread", "replys", "ctime", "mtime" ] def add(self): try: db.session.add(self) db.session.commit() except Exception as e: logger.error('保存评论出现错误, %s' % e) raise Exception('保存评论出现错误') @staticmethod def get_comment_list(id): try: results = Comment.query.filter(Comment.aid == id).all() return [result.to_dict() for result in results] except Exception as e: print(e) logger.error('检索数据出现错误, %s' % e) raise Exception('检索数据出现错误')
from app import mysql_db as db article_tag = db.Table('article_tag', db.Column('article_id', db.BIGINT, db.ForeignKey('article.id'), primary_key=True), db.Column('tag_id', db.BIGINT, db.ForeignKey('tag.id'), primary_key=True), extend_existing=True, info={'bind_key': 'mysql_bind'})