class Auth(mysql_db.Model): __tablename__ = 'auth' 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) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now()) def __repr__(self): return '<Auth %r>' % self.name
class Preview(mysql_db.Model): __tablename__ = "preview" id = mysql_db.Column(mysql_db.Integer, primary_key=True) # 编号 title = mysql_db.Column(mysql_db.String(64), unique=True) # 标题 logo = mysql_db.Column(mysql_db.String(128), unique=True) # 封面 addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) # 添加时间 def __repr__(self): return "<Preview %r>" % self.title
class Category(mysql_db.Model): __tablename__ = 'category' id = mysql_db.Column(mysql_db.Integer, primary_key=True) title = mysql_db.Column(mysql_db.String(64), unique=True) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) movie = mysql_db.relationship('Movie', backref='category') def __repr__(self): return '<Category %r' % self.title
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 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 Role(mysql_db.Model): __tablename__ = 'role' id = mysql_db.Column(mysql_db.Integer, primary_key=True) name = mysql_db.Column(mysql_db.String(64), unique=True) auths = mysql_db.Column(mysql_db.String(128)) admins = mysql_db.relationship("Admin", backref='role') addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) def __repr__(self): return "<Role %r>" % self.name
class CiProtocol(mysql_db.Model): __tablename__ = 'ci_protocol' id = mysql_db.Column(mysql_db.Integer, primary_key=True) partner_id = mysql_db.Column(mysql_db.Integer) agent_id = mysql_db.Column(mysql_db.Integer) branch_id = mysql_db.Column(mysql_db.Integer) protocol_code = mysql_db.Column(mysql_db.String(32)) protocol_name = mysql_db.Column(mysql_db.String(32)) protocol_sub_code = mysql_db.Column(mysql_db.String(32)) product = mysql_db.Column(mysql_db.String(1000)) created = mysql_db.Column(mysql_db.DateTime, default=func.now()) updated = mysql_db.Column(mysql_db.TIMESTAMP, default=func.now())
class CiPartner(mysql_db.Model): __tablename__ = 'ci_partner' id = mysql_db.Column(mysql_db.Integer, primary_key=True) account_id = mysql_db.Column(mysql_db.Integer) partner_code = mysql_db.Column(mysql_db.String(16)) partner_name = mysql_db.Column(mysql_db.String(16)) business_code = mysql_db.Column(mysql_db.String(16)) business_detail_code = mysql_db.Column(mysql_db.String(16)) channel_code = mysql_db.Column(mysql_db.String(16)) channel_detail_code = mysql_db.Column(mysql_db.String(16)) created = mysql_db.Column(mysql_db.DateTime, default=func.now()) updated = mysql_db.Column(mysql_db.TIMESTAMP, default=func.now())
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 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 Reservation(mysql_db.Model): __tablename__ = 'Reservations' reservation_id = mysql_db.Column(mysql_db.Integer, primary_key=True) lot_id = mysql_db.Column(mysql_db.Integer) start_time = mysql_db.Column(mysql_db.DateTime, nullable=False) end_time = mysql_db.Column(mysql_db.Integer, nullable=False) def __init__(self, **kwargs): self.lot_id = kwargs.get('lot_id') self.start_time = kwargs.get('start_time') self.end_time = kwargs.get('end_time') def __eq__(self, other_user): return self.id == other_user.id
class User(db.Model): __bind_key__ = 'mysql_bind' __tablename__ = 'user' id = db.Column('id', db.BIGINT, primary_key=True, nullable=False, autoincrement=True) account = db.Column('account', db.String(255), unique=True, nullable=False, comment='用户名') password = db.Column('password', db.String(255), nullable=False, comment='密码') nick_name = db.Column('nick_name', db.String(100), nullable=False, comment='昵称') role = db.Column('role', db.SmallInteger, nullable=False, default=1, comment='角色') avatar = db.Column('avatar', db.BLOB, comment='头像') github = db.Column('github', db.String(255), default='')
class CiBranch(mysql_db.Model): __tablename__ = 'ci_branch' id = mysql_db.Column(mysql_db.Integer, primary_key=True) partner_id = mysql_db.Column(mysql_db.Integer) agent_id = mysql_db.Column(mysql_db.Integer) branch_code = mysql_db.Column(mysql_db.String(32)) branch_name = mysql_db.Column(mysql_db.String(32)) created = mysql_db.Column(mysql_db.DateTime, default=func.now()) updated = mysql_db.Column(mysql_db.TIMESTAMP, default=func.now())
class Role(db.Model): __bind_key__ = 'mysql_bind' __tablename__ = 'role' id = db.Column('id', BIGINT(unsigned=True), nullable=False, autoincrement=True, primary_key=True) name = db.Column('name', db.String(128), nullable=False, comment='角色名称') op_user = db.Column('op_user', db.BIGINT, nullable=False, 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='更新时间')
class User(mysql_db.Model): __tablename__ = 'user' id = mysql_db.Column(mysql_db.Integer, primary_key=True) name = mysql_db.Column(mysql_db.String(64), unique=True, nullable=False) pwd = mysql_db.Column(mysql_db.String(128), nullable=False) emial = mysql_db.Column(mysql_db.String(64), unique=True) info = mysql_db.Column(mysql_db.Text) avatar = mysql_db.Column(mysql_db.String(64), unique=True) addtime = mysql_db.Column(mysql_db.DateTime, index=True, default=datetime.now) userlogs = mysql_db.relationship('UserLog', backref='user') comments = mysql_db.relationship('Comment', backref='user') moviecol = mysql_db.relationship('Moviecol', backref='user') def __repr__(self): return '<User %r>' % self.name def check_pwd(self, pwd): from werkzeug.security import check_password_hash return check_password_hash(self.pwd, pwd)
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)
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'})
class CiAccount(mysql_db.Model): __tablename__ = 'ci_account' id = mysql_db.Column(mysql_db.Integer, primary_key=True) username = mysql_db.Column(mysql_db.String(32), index=True, unique=True) password = mysql_db.Column(mysql_db.String(128), nullable=False) vpn_username = mysql_db.Column(mysql_db.String(32), default='') vpn_password = mysql_db.Column(mysql_db.String(128), default='') ins_company = mysql_db.Column(mysql_db.String(16), default='') login_type = mysql_db.Column(mysql_db.Integer, default=0) department_code = mysql_db.Column(mysql_db.String(16), default='') department_name = mysql_db.Column(mysql_db.String(32), default='') seller_code = mysql_db.Column(mysql_db.String(16), default='') seller_name = mysql_db.Column(mysql_db.String(32), default='') area = mysql_db.Column(mysql_db.String(32), default='') proxy = mysql_db.Column(mysql_db.String(32), default='') is_bank = mysql_db.Column(mysql_db.Integer, default=0) cookies = mysql_db.Column(mysql_db.String(2000), default='') pre_url = mysql_db.Column(mysql_db.String(2000), default='') pre_verify = mysql_db.Column(mysql_db.Integer, default=-1) created = mysql_db.Column(mysql_db.DateTime, default=func.now()) updated = mysql_db.Column(mysql_db.TIMESTAMP, default=func.now())
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 Tag(BaseModel): __bind_key__ = 'mysql_bind' __tablename__ = 'tag' id = db.Column('id', db.BIGINT, primary_key=True, nullable=False, autoincrement=True) name = db.Column('name', db.String(100), nullable=False, 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', 'name'] @staticmethod def get_one(id): try: ret = Tag.query.filter(Tag.id == id).first() return ret except Exception as e: logger.error('获取标签信息出现错误, %s' % e) raise Exception('获取标签信息失败') @staticmethod def get_list(page_index=1, page_size=10): try: page_inate_datas = Tag.query.order_by(Tag.id.desc()).paginate( page_index, page_size, error_out=False) return page_inate_datas except Exception as e: logger.error('获取标签列表出现错误, %s' % e) raise Exception('获取标签列表信息失败') def add(self): try: db.session.add(self) db.session.commit() except Exception as e: logger.error('保存标签数据失败, %s' % e) raise Exception('保存标签数据失败') def update(self): try: db.session.commit() except Exception as e: logger.error('更新数据出现错误, %s' % e) raise Exception('更新数据失败') @staticmethod def delete(ids): try: Tag.query.filter(Tag.id.in_(ids)).delete(synchronize_session=False) db.session.commit() except Exception as e: logger.error('删除数据出现错误, %s' % e) raise Exception('删除数据失败')
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 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('检索数据出现错误')
class Article(BaseModel): __bind_key__ = 'mysql_bind' __tablename__ = 'article' id = db.Column('id', db.BIGINT, primary_key=True, nullable=False, autoincrement=True) uid = db.Column('uid', db.BIGINT, nullable=False, comment='作者') title = db.Column('title', db.String(225), nullable=False, comment='文章标题') content = db.Column('content', db.Text, nullable=False, comment='文章内容') like = db.Column('like', db.Integer, nullable=False, default=0, comment='点赞数') tread = db.Column('tread', db.BIGINT, nullable=False, default=0, comment='踩数量') view = db.Column('view', BIGINT(unsigned=True), nullable=False, default=0, comment='浏览次数') reply = db.Column('reply', BIGINT(unsigned=True), nullable=False, default=0, comment='回复数') share = db.Column('share', BIGINT(unsigned=True), nullable=False, default=0, comment='分享次数') ctime = db.Column('ctime', db.DateTime, nullable=False, default=datetime.now()) mtime = db.Column('mtime', db.DateTime, nullable=False, default=datetime.now()) comments = db.relationship('Comment') tags = db.relationship('Tag', secondary=article_tag, backref=db.backref('articles')) _default_fields = [ "id", "uid", "title", "content", "like", "tread", "view", "reply", "share", "ctime", "mtime", "tags" ] def save(self): try: db.session.add(self) db.session.commit() except Exception as e: logger.error('保存数据出现错误, %s' % e) raise Exception('保存数据失败') def update(self): try: db.session.commit() except Exception as e: logger.error('更新数据出现错误, %s' % e) raise Exception('更新数据失败') @staticmethod def delete(ids): try: Article.query.filter( Article.id.in_(ids)).delete(synchronize_session=False) db.session.commit() except Exception as e: logger.error('删除数据出现错误, %s' % e) raise Exception('删除数据失败') @staticmethod def get_article(id): try: ret = Article.query.filter(Article.id == id).first() return ret except Exception as e: logger.error('获取文章信息出现错误, %s' % e) raise Exception('获取文章信息失败') @staticmethod def get_article_list(page_index=1, page_size=10): try: page_inate_datas = Article.query.order_by( Article.id.desc()).paginate(page_index, page_size, error_out=False) return page_inate_datas except Exception as e: logger.error('检索文章列表失败, %s' % e) raise Exception('检索文章列表失败')