class Category(db.Model): __tablename__ = 'Category' TID = db.Column(db.Integer, nullable=False) # 大类ID Tname = db.Column(db.String(12), nullable=False) # 大类名称 CID = db.Column(db.Integer, ForeignKey("Course.CID"), primary_key=True) # 课程ID
class Following(db.Model): __tablename__ = 'follow' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer) followed_user_id = db.Column(db.Integer)
class BaseModel(db.Model): __abstract__ = True # 表明其为抽象类 不单独做为模型出现 只被继承使用 id = db.Column(db.Integer, primary_key=True, autoincrement=True) date_time = db.Column(db.DateTime, default=datetime.now)
class Vote(db.Model): # 记录每个投票活动的具体选项等信息 __tablename__ = 'vote' id = db.Column(db.Integer, primary_key=True, autoincrement=True) founder_id = db.Column(db.Integer, db.ForeignKey('user.id')) create_time = db.Column(db.DateTime, default=datetime.now) title = db.Column(db.String(100), nullable=False) option1 = db.Column(db.String(100), nullable=False) sum_option1 = db.Column(db.Integer, nullable=False) option2 = db.Column(db.String(100), nullable=False) sum_option2 = db.Column(db.Integer, nullable=False) option3 = db.Column(db.String(100), nullable=True) sum_option3 = db.Column(db.Integer, nullable=True) option4 = db.Column(db.String(100), nullable=True) sum_option4 = db.Column(db.Integer, nullable=True) sum_options = db.Column(db.Integer, nullable=False) author = db.relationship('User', backref=db.backref('votes'))
class ChatConnection(db.Model): __tablename__ = 'chatconnection' id = db.Column(db.Integer, primary_key=True, autoincrement=True) u_id1 = db.Column(db.Integer) u_id2 = db.Column(db.Integer)
class WechatArticle(db.Model): ''' 公众号文章 ''' __tablename__ = 'wechat_article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) account = db.Column(db.String(255), nullable=True, comment='公众号名称') title = db.Column(db.String(255), nullable=True, comment='公众号标题') url = db.Column(db.String(255), nullable=True, comment='公众号的url') author = db.Column(db.String(50), nullable=True, comment='工作中号发布的作者') publish_time = db.Column(db.DateTime, nullable=True, comment='文章发布时间') digest = db.Column(db.String(50), nullable=True, comment='公众号文章描述') cover = db.Column(db.String(50), nullable=True, comment='公众号文章封面') pics_url = db.Column(db.TEXT, nullable=True, comment='公众号文章中图片列表') content_html = db.Column(db.Text(16777216), nullable=True, comment='公众号文章中心内容') source_url = db.Column(db.String(255), nullable=True, comment='公众号文章源连接') comment_id = db.Column(db.String(50), nullable=True, comment='公众号文章评论id') sn = db.Column(db.String(50), nullable=True, unique=True, comment='') spider_time = db.Column(db.DateTime, nullable=True, comment='公众号抓取时间') flag = db.Column(db.Integer, nullable=True, default=0, comment='flag标志,默认为0 普通,1为精华') is_hide = db.Column(db.Integer, nullable=True, default=0, comment='文章是否隐藏不对外显示,默认0不隐藏') re_spider = db.Column(db.Integer, nullable=True, default=0, comment='是否回采文章,0默认、1失败、2完成')
class BoardModel(db.Model): __tablename__ = 'cms_board' id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键 自增 name = db.Column(db.String(250), nullable=False) # 非空 create_time = db.Column(db.DateTime, default=datetime.now) # 创建时间
class DockerList(db.Model): __tablename__ = 'hostlist' id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid) hostname = db.Column(db.String(30), nullable=False) hostipaddr = db.Column(db.String(50), nullable=False) hostport = db.Column(db.String(5), nullable=False)
class FrontUser(db.Model): __tablename__ = 'front_user' id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid) telephone = db.Column(db.String(11), nullable=False, unique=True) username = db.Column(db.String(50), nullable=False) _password = db.Column(db.String(100), nullable=False) email = db.Column(db.String(50), unique=True) realname = db.Column(db.String(50)) avatar = db.Column(db.String(100)) signature = db.Column(db.String(100)) gender = db.Column(db.Enum('male', 'female', 'secret', 'unknow'), default='unknow') join_time = db.Column(db.DateTime, default=datetime.datetime.now) integral = db.Column(db.String(50)) def __init__(self, *args, **kwargs): if "password" in kwargs: self.password = kwargs.get('password') kwargs.pop("password") super(FrontUser, self).__init__(*args, **kwargs) @property def password(self): return self._password @password.setter def password(self, newpwd): self._password = generate_password_hash(newpwd) def check_password(self, rawpwd): return check_password_hash(self.password, rawpwd)
class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) tags = db.Column(db.String(100), nullable=False)
class UserOperationLogModel(db.Model): __tablename__ = 'useroperationlog' id = db.Column(db.String(100), primary_key=True, default=shortuuid.uuid) username = db.Column(db.String(30), nullable=False) ctime = db.Column(db.DateTime, default=datetime.datetime.now) operation = db.Column(db.String(100), nullable=False)
class UserType(db.Model): __tablename__ = 'usertype' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) name = db.Column(db.String(5), nullable=True)
class Board(db.Model): __tablename__ = 'board' id = db.Column(db.Integer, primary_key=True, autoincrement=True) boardname = db.Column(db.String(20), nullable=False) postnum = db.Column(db.String(200), nullable=False, default=0) create_time = db.Column(db.DateTime, default=datetime.datetime.now)
class Messageboard(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.String(255), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) mdatetime = db.Column(db.DateTime, default=datetime.now)
id = db.Column(db.Integer, primary_key=True, autoincrement=True) account = db.Column(db.String(255), nullable=True, comment='公众号中文名') head_url = db.Column(db.String(255), nullable=True, comment='公众号头像链接') summary = db.Column(db.String(500), nullable=True, comment='公众号描述') qr_code = db.Column(db.String(255), nullable=True, comment='公众号二维码') verify = db.Column(db.String(255), nullable=True, comment='公众号认证') spider_time = db.Column(db.DateTime, comment='上次爬取时间') @classmethod @property def get_biz(self): return WechatAccount.__biz WechatAccount.__biz = db.Column(db.String(50), nullable=True, unique=True, comment='公众号id') class WechatAccountTask(db.Model): ''' 待爬取公众号任务id ''' __tablename__ = 'wechat_account_task' id = db.Column(db.Integer, primary_key=True, autoincrement=True) last_publish_time = db.Column(db.DateTime, nullable=True, comment='上次抓取到的文章发布时间,做文章增量采集用') last_spider_time = db.Column(db.DateTime, nullable=True, comment='上次抓取时间,用于同一个公众号每隔一段时间扫描一次')
# -*- coding: utf-8 -*- # @File : models.py.py # @Author: deeeeeeeee # @Date : 2017/12/11 import os from datetime import datetime from flask import current_app, url_for from exts import db, login_manager from werkzeug.security import generate_password_hash, check_password_hash from flask_login import UserMixin, AnonymousUserMixin from exts import Index_pic, Chapter_PDF, Chapter_video follows = db.Table( 'follows', db.Column('user_id', db.Integer, db.ForeignKey('user.id')), db.Column('course_id', db.Integer, db.ForeignKey('courses.id'))) class User(UserMixin, db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) email = db.Column(db.String(50), nullable=False, index=True, unique=True) telephone = db.Column(db.String(11), nullable=False) username = db.Column(db.String(50), nullable=False) password_hash = db.Column(db.String(128), nullable=False) role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) location = db.Column(db.String(64)) about_me = db.Column(db.Text()) member_since = db.Column(db.DateTime(), default=datetime.utcnow) last_seen = db.Column(db.DateTime(), default=datetime.utcnow) courses = db.relationship('Course', secondary=follows,
class WechatArticleList(db.Model): ''' 公众号中微信文章列表 ''' __tablename__ = 'wechat_article_list' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(255), nullable=True, comment='标题') digest = db.Column(db.String(2000), nullable=True, comment='描述') url = db.Column(db.String(500), nullable=True, comment='文章链接') source_url = db.Column(db.String(1000), nullable=True, comment='源地址') cover = db.Column(db.String(255), nullable=True, comment='封面地址') subtype = db.Column(db.Integer, nullable=True, comment='') is_multi = db.Column(db.Integer, nullable=True, comment='') author = db.Column(db.String(255), nullable=True, comment='作者') copyright_stat = db.Column(db.Integer, nullable=True, comment='') duration = db.Column(db.Integer, nullable=True, comment='') del_flag = db.Column(db.Integer, nullable=True, comment='删除标志') type = db.Column(db.Integer, nullable=True, comment='') sn = db.Column(db.String(50), nullable=True, comment='', index=True) publish_time = db.Column(db.DateTime, nullable=True, comment='文章发布时间,做文章增量采集用') spider_time = db.Column(db.DateTime, nullable=True, comment='上次抓取时间,')
class Comment(db.Model): 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) article_id = db.Column(db.Integer, db.ForeignKey('article.id')) article = db.relationship('Article', backref=db.backref('comment'))
# 管理板块 BOARDER = 0b00001000 # 管理后台用户 CMSUSER = 0b00010000 # 管理前台用户 FRONTUSER = 0b00100000 # 管理管理员用户 ADMINER = 0b01000000 # 权限与角色是多对多的关系,创建他们的中间表 cms_role_user = db.Table( "cms_role_user", db.Column("cms_role_id", db.Integer, db.ForeignKey('cms_role.id'), primary_key=True), db.Column("cms_user_id", db.Integer, db.ForeignKey('cms_user.id'), primary_key=True), ) # 角色模型定义 继承了db.Model class CMSRole(db.Model): __tablename__ = 'cms_role' id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键 自增 name = db.Column(db.String(50), nullable=False) # 非空 desc = db.Column(db.String(250), nullable=False) # 非空
class User(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) email = db.Column(db.String(30), nullable=False) username = db.Column(db.String(30), nullable=False) password = db.Column(db.String(100), nullable=False)
class Tasks(db.Model): task_id = db.Column(db.String(40), primary_key=True) task_status = db.Column(db.String(11), nullable=False) task_data = db.Column(db.String(5000)) # task_owner为外键,需要使用db.ForeignKey('表名.列名')指定 task_owner_id = db.Column(db.Integer, db.ForeignKey('user.user_id'))
class User(db.Model): __tablename__ = 'User' name = db.Column(db.String(16), primary_key=True) password = db.Column(db.String(16))
class Voting(db.Model): #记录每个用户自己的投票行为 __tablename__ = 'voting' id = db.Column(db.Integer, primary_key=True, autoincrement=True) vote_id = db.Column(db.Integer, db.ForeignKey('voting.id')) option = db.Column(db.String(100), nullable=False) user_id = db.Column(db.Integer, nullable=False)
class Submit(db.Model): __tablename__ = 'Submit' id = db.Column(INTEGER(11), primary_key=True) idStudent = db.Column(ForeignKey('Student.id'), nullable=False, index=True) idQuestion = db.Column(ForeignKey('Question.id', ondelete='CASCADE'), nullable=False, index=True) idAnswer = db.Column(ForeignKey('Answer.id', ondelete='CASCADE'), nullable=False, index=True) score = db.Column(INTEGER(11), nullable=False) answer = db.Column(String(300), nullable=False) correct = db.Column(String(300), nullable=False) segmentJson = db.Column(String(5000), nullable=False) spelling = db.Column(INTEGER(11), nullable=False) type = db.Column(INTEGER(11), nullable=False) result = db.Column(String(5000), nullable=False) time = db.Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP")) info = db.Column(String(500)) Question = db.relationship('Question') Student = db.relationship('Student') Answer = db.relationship('Answer')
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) email = db.Column(db.String(100), nullable=False, unique=True) username = db.Column(db.String(100), nullable=False) password = db.Column(db.String(100), nullable=False) number_of_post = db.Column(db.Integer) number_of_comment = db.Column(db.Integer) point = db.Column(db.Integer) grade = db.Column(db.Integer) register_time = db.Column(db.DateTime, default=datetime.now) last_login_time = db.Column(db.DateTime) introduction = db.Column(db.Text) photo = db.Column(db.String(100), nullable=True) # 存储图片的路径 confirmed = db.Column(db.Boolean, nullable=False, default=False) confirmed_on = db.Column(db.DateTime, nullable=True) report_time = db.Column(db.DateTime, nullable=True) #所有的数据都是这个固定的时间 admin = db.Column(db.Integer) #判断是否是管理员
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) telephone = db.Column(db.String(11), nullable=False) username = db.Column(db.String(50), nullable=False) password = db.Column(db.String(100), nullable=False)
class Report_unique(db.Model): #为限制一个用户只能举报一个帖子/回复一次 __tablename__ = 'report' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, nullable=True) option = db.Column(db.Integer, nullable=True) option_id = db.Column(db.Integer, nullable=True)
class InputInterface(db.Model): __tablename__ = 'input_interface' id = db.Column(db.Integer, primary_key=True, autoincrement=True) app_id = db.Column(db.String(10)) name = db.Column(db.String(20)) interface_name = db.Column(db.String(100)) interface_url = db.Column(db.String(1000), nullable=False) parameter_key = db.Column(db.String(5000)) parameter_value = db.Column(db.Text) typed = db.Column(db.String(10), nullable=False) methods = db.Column(db.String(10), nullable=False) expected_code = db.Column(db.String(1000)) sign = db.Column(db.String(2)) create_time = db.Column(db.DateTime, default=datetime.now) update_time = db.Column(db.DateTime, default=datetime.now) timestamp = db.Column(db.String(13)) domain = db.Column(db.String(500), nullable=False) have_headers = db.Column(db.String(2), nullable=False) author_id = db.Column(db.String(100), db.ForeignKey('front_user.id'), nullable=False) author = db.relationship('FrontUser', backref='interfaces')
class Message(db.Model): __tablename__ = 'article_detail' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text, nullable=True) msg = db.Column(db.Text, nullable=True) uid = db.Column(db.Integer, db.ForeignKey(User.id))
class newCourse(db.Model): __tablename__ = 'newCourse' CID = db.Column(db.Integer, primary_key=True) # 课程ID