class BoardModel(db.Model, BaseModel): __tablename__ = 'boardmodel' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True) create_time = db.Column(db.DateTime, default=datetime.now()) is_public = db.Column(db.Boolean, default=False) author_id = db.Column(db.String(30), db.ForeignKey('cms_user.id')) author = db.relationship('CMSUser', backref='boards') roles = db.relationship('FrontRole', secondary=front_role_board, backref='boards') def __init__(self, name, author, public=True): self.name = name self.author = author self.is_public = public
class Apply(db.Model): def __init__(self, *args, **kwargs): if 'desc' in kwargs: kwargs.pop('desc') if 'type' in kwargs: self.desc = self.desc_dict.get(kwargs['type']) super(Apply, self).__init__(*args, **kwargs) desc_dict = {'highlight': '加精', 'top': '顶置'} __tablename__ = 'apply' id = db.Column(db.Integer, primary_key=True, autoincrement=True) post_id = db.Column(db.Integer, db.ForeignKey('post.id')) type = db.Column(db.String(50)) desc = db.Column(db.String(50)) create_time = db.Column(db.DateTime, default=datetime.now) post = db.relationship('PostModel', backref=backref('apply'))
class EoApiEnvAdditionalParam(db.Model): __tablename__ = 'eo_api_env_param_additional' # paramID paramID = db.Column(db.Integer, primary_key=True, autoincrement=True) # 参数键 paramKey = db.Column(db.String(255), nullable=False) # 参数值 paramValue = db.Column(db.String(255), nullable=False) # 参数描述 paramDesc = db.Column(db.String(255), nullable=True) # envID envID = db.Column(db.Integer, db.ForeignKey("eo_api_env.envID")) # 一对多关系映射 env = db.relationship("EoApiEnv", backref="additionalparam")
class EoApiEnv(db.Model): __tablename__ = 'eo_api_env' # 环境ID envID = db.Column(db.Integer, primary_key=True, autoincrement=True) # 环境名称 envName = db.Column(db.String(255), nullable=False) # 环境说明 envDesc = db.Column(db.String(255), nullable=True) # 项目ID - 外键 projectID = db.Column(db.Integer, db.ForeignKey("eo_project.projectID")) # 一对多关系映射 project = db.relationship("EoProject", backref='apienv') def __repr__(self): return "<Article(envName:%s)>" % self.envName
class Question(db.Model): __tablename__ = 'question' id = db.Column(db.Integer, primary_key=True, autoincrement=True) contact = db.Column(db.String(10), nullable=False) address = db.Column(db.String(50), nullable=False) city = db.Column(db.String(50), nullable=False) state = db.Column(db.String(50), nullable=False) zipcode = db.Column(db.String(5), nullable=False) price = db.Column(db.String(6), nullable=False) bath = db.Column(db.String(2), nullable=False) bed = db.Column(db.String(2), nullable=False) content = db.Column(db.Text, nullable=False) # now()获取的是服务器第一次运行的时间 # now就是每次创建一个模型的时候,都获取当前的时间 create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('questions'))
class User(db.Model): ''' _password:对内密码 password:对外密码 ''' __tablename__ = 'user' user_id = db.Column(db.Integer,primary_key=True,autoincrement=True) #用户id username = db.Column(db.String(100),nullable=False,unique=True) # 用户名 _password = db.Column(db.String(500),nullable=False) # 密码 email = db.Column(db.String(100),nullable=False,unique=True) # 邮箱 phone = db.Column(db.String(20),unique=True) # 电话 fullname = db.Column(db.String(100)) #全称 status = db.Column(db.Integer) # 状态 is_super = db.Column(db.SmallInteger) # 是否为管理员,1为管理员 role_id = db.Column(db.Integer, db.ForeignKey('role.id')) # 所属角色 remarks = db.Column(db.String(500)) # 备注 reg_time = db.Column(db.DateTime, default=datetime.now) #注册时间 def __init__(self,username=None,password=None,email=None,phone=None,fullname=None, status=None,is_super=None,role_id=None,remarks=None,reg_time=None): self.username = username self.password = password self.email = email self.phone = phone self.fullname = fullname self.status = status self.is_super = is_super self.role_id = role_id self.remarks = remarks self.reg_time = reg_time #获取密码 @property def password(self): return self._password #设置密码 @password.setter def password(self,raw_password): self._password = generate_password_hash(raw_password) #检查密码 def check_password(self,raw_password): result = check_password_hash(self.password,raw_password) return result
class News(db.Model): __tablename__ = 'news' pid = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(255), nullable=False) article = db.Column(db.Text, nullable=False) time = db.Column(db.DateTime, default=datetime.now) type = db.Column(db.String(16), nullable=False) source = db.Column(db.String(16)) author = db.Column(db.String(16)) likes = db.Column(db.Integer, nullable=False, default=0) url = db.Column(db.String(255)) picurl = db.Column(db.String(255)) waitforcheck = db.Column( db.Integer, nullable=False) # 0需要审核 1爬虫获取 2管理员审核 #如果是爬虫获取 则其picurl是外网链接 value = db.Column(db.Integer, nullable=False, default=0) author_id = db.Column(db.Integer, db.ForeignKey('user.uid')) author_user = db.relationship('User', backref=db.backref('news'))
class Question(db.Model): __tablename__ = 'question' __searchable__ = ['content', 'title'] __analyzer__ = ChineseAnalyzer() id = db.Column(db.Integer, primary_key=True, autoincrement=True) type = db.Column(db.Integer, nullable=False) # 用数字代替具体的分类 title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) report_total = db.Column(db.Integer, nullable=True) report_reasons_and_times = db.Column(db.String(100), nullable=True) # answers = db.relationship('Answer',lazy='dynamic', cascade='all, delete-orphan',passive_deletes=True, backref=db.backref('question')) author = db.relationship('User', backref=db.backref('questions')) def __repr__(self): return '{0}(title={1})'.format(self.__class__.__name__, self.title)
class Album(db.Model): __tablename__ = 'album' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(64), nullable=False) descr = db.Column(db.String(255), nullable=False) cover = db.Column(db.String(512), nullable=False) userid = db.Column(db.Integer, db.ForeignKey('user.id')) createdate = db.Column(db.DateTime, nullable=False) updatedate = db.Column(db.DateTime, nullable=False) user = db.relationship('User', backref=db.backref('albums')) def __init__(self, name, descr, cover): self.name = name self.descr = descr self.cover = cover self.createdate = datetime.datetime.now() self.updatedate = datetime.datetime.now()
class DataChenTable(db.Model): __tablename__ = "data1001Table" num = db.Column(db.Integer, primary_key=True, autoincrement=True) ID = db.Column(db.String(10), db.ForeignKey('devicesTable.ID')) temIn = db.Column(db.String(10)) humIn = db.Column(db.String(10)) temOut = db.Column(db.String(10)) humOut = db.Column(db.String(10)) temSoil1 = db.Column(db.String(10)) humSoil1 = db.Column(db.String(10)) temSoil2 = db.Column(db.String(10)) humSoil2 = db.Column(db.String(10)) # windCtrl = db.Column(db.String(10)) # temCtrl = db.Column(db.String(10)) # water1 = db.Column(db.String(10)) # 1:浇水, 0:不浇水 # water2 = db.Column(db.String(10)) # 1:浇水, 0:不浇水 # humanStatus = db.Column(db.String(10)) # 1:刷卡有人,2:异常有人,0:无人 create_time = db.Column(db.DateTime, default=datetime.now)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(200), nullable=False) content = db.Column(db.Text, nullable=False) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('posts')) tags = db.relationship('Tag', secondary=post_tag, backref=db.backref('posts')) def __init__(self, title, content, author_id): self.title = title self.content = content self.author_id = author_id def __repr__(self): return f'<Post {self.title}>'
class GSM(db.Model): __tablename__ = 'gsm' id = db.Column(db.Integer, primary_key=True, comment='ID', autoincrement=True) GSM_num = db.Column(db.String(20), comment='GSM号') Status = db.Column(db.String(50), comment='发表时间') Source_name = db.Column(db.String(200), comment='器官类型') Organism = db.Column(db.String(100), comment='种属') Characteristics = db.Column(db.String(1000), comment='实验特征') Extracted_molecule = db.Column(db.String(100), comment='提取来源') Platform = db.Column(db.String(300), comment='平台') GSE_num = db.Column(db.String(20), db.ForeignKey('gse.GSE_num'), comment='GSE号') Experiment_type = db.Column(db.String(100), comment="实验类型") gse_en = db.relationship('GSE', backref=db.backref('gsms'))
class Admin(db.Model): __tablename__ = "admin" id = db.Column(db.Integer, primary_key=True) # 编号 name = db.Column(db.String(100), unique=True) # 管理员账号# unique 唯一约束 pwd = db.Column(db.String(100)) # 管理员密码 is_super = db.Column(db.SmallInteger) # 是否为超级管理员,0为超级管理员 role_id = db.Column(db.Integer, db.ForeignKey('role.id')) # 所属角色 addtime = db.Column(db.DateTime, index=True, default=datetime.now) adminlogs = db.relationship("Adminlog", backref='admin') # 管理员登录日志外键关系关联 oplogs = db.relationship("Oplog", backref='admin') # 管理员操作日志外键关系关联 def __repr__(self): return "<Admin {}>".format(self.name) # 验证哈希加密的密码是否正确 def check_pwd(self, pwd): from werkzeug.security import check_password_hash return check_password_hash(self.pwd, pwd)
class Community(db.Model): """ 社区帖子模型: title:帖子的标题 context:帖子的内容 create_time:帖子创建时间(datetime.now:每一次创建模型都会记录时间,datetime.now():第一次创建模型时记录时间) author_id:作者id,与User表的id相关联 """ __tablename__ = 'community' __searchable__ = ['title'] __analyzer__ = ChineseAnalyzer() id = db.Column(db.Integer, autoincrement=True, primary_key=True) title = db.Column(db.String(50), nullable=False) context = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('community'))
class Shopping_bill(db.Model): __tablename__ = 'shopping_bill' shopping_billID = db.Column(db.Integer, primary_key=True, nullable=False, autoincrement=True) goods = db.Column(db.JSON, nullable=False) total_amount = db.Column(db.Float, nullable=False) # shipping_addressID = db.Column(db.Integer, # db.ForeignKey('shipping_address.shipping_addressID'), # nullable=False) shipping_address = db.Column(db.String(100), nullable=False) userID = db.Column(db.Integer, db.ForeignKey('user.userID', ondelete="CASCADE"), nullable=False) user = db.relationship('User', backref=db.backref('shopping_bills', cascade="all, delete-orphan"))
class Abroad(db.Model): __tablename__ = 'abroad' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) country = db.Column(db.String(20)) #国家 city = db.Column(db.String(20)) name = db.Column(db.String(16)) age = db.Column(db.String(16)) sex = db.Column(db.String(16)) school = db.Column(db.String(20)) # 留学学校 major = db.Column(db.String(20)) # 专业 TOELF = db.Column(db.Integer) #托福 IELTS = db.Column(db.Integer) #雅思 advice = db.Column(db.Text) others = db.Column(db.Text) school_life = db.Column(db.Text) hobby = db.Column(db.Text) self_evaluation = db.Column(db.Text)
class LivingIP(db.Model): ''' 存活的ip信息 ''' __tablename__ = 't_living_ip' id = db.Column(db.Integer, primary_key=True, autoincrement=True) ips = db.Column(db.Integer, db.ForeignKey('t_ips.id')) ip = db.Column(db.String(255), comment='具体ip地址') flag = db.Column(db.String(255), comment='采集成功标志,0or1') status = db.Column(db.String(255), default='0', comment='状态是否采集,默认为0 ,0or1') scan_time = db.Column(db.DateTime, comment='最近扫描时间') create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间') living_port = db.relationship('IPort', backref='living_port', lazy=True)
class Information(db.Model): __tablename__ = 'info' id = db.Column(db.Integer, primary_key=True, autoincrement=True) gender = db.Column(db.String(100)) age = db.Column(db.Integer) major = db.Column(db.String(100)) group = db.Column(db.String(100)) #i.e. class hobbies = db.Column(db.Text) number_of_followed = db.Column(db.Integer) #粉丝总数 number_of_following = db.Column(db.Integer) #关注总数 user_id = db.Column(db.Integer, db.ForeignKey( 'user.id', ondelete='CASCADE')) #foreign key (connect to the table "user") owner = db.relationship('User', backref=db.backref('information'))
class Question(db.Model): __tablename__ = 'question' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.UnicodeText, nullable=False) desc = db.Column(db.UnicodeText, default=u"rt") author_id = db.Column(db.Integer, db.ForeignKey('user.id')) create_time = db.Column(db.DateTime, default=datetime.utcnow) vote = db.Column(db.Integer, default=0) private = db.Column(db.Boolean, default=False) author = db.relationship('User', backref=db.backref('questions', lazy='dynamic')) @staticmethod def get_question_by_title(title): return Question.query.filter_by(title=title).first() @staticmethod def get_question_by_id(id): return Question.query.filter_by(id=id).first() def vote_updata(self): if self.answers.count() == 0: return if self.private: self.vote = 0 return temp = self.answers.first().vote for item in self.answers.all(): temp = max(temp, item.vote) self.vote = temp def is_belong_to_theme(self, name): if self.themes.filter_by(name=name).count() > 0: return False return True def delete_answers(self): for item in self.answers.all(): item.delete_comments() db.session.delete(item) def __repr__(self): return '<Question %r>' % self.title
class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(50)) author = db.Column(db.String(50)) # author = db.Column(db.String(50), db.ForeignKey('author.author' , name=)) time = db.Column(db.DateTime, default=datetime.now()) content = db.Column(db.Text, nullable=False) # 和author的关系,一对多 authorid = db.Column(db.Integer, db.ForeignKey('author.id')) ref = db.relationship('Author', backref='bref') # 和tag的关系,多对多 tags = db.relationship('Tag', secondary=article_tag) def __repr__(self): return '<User(id="%s",title="%s",author="%s",content="%s,time=%s")>' % ( self.id, self.author, self.title, self.content, self.time)
class Team(db.Model): ''' id 队长id 队伍已有人数 班级_id 队伍满员标记 信息 /255 ''' __tablename__ = 'team' id = db.Column(db.String(255, 'utf8_general_ci'), primary_key=True, index=True) cap = db.Column(db.String(255, 'utf8_general_ci')) leader_id = db.Column(db.String(255, 'utf8_general_ci'), nullable=False) class_id = db.Column(db.String(255, 'utf8_general_ci'), db.ForeignKey('class.id')) full = db.Column(db.Integer) msg = db.Column(db.String(255, 'utf8_general_ci'))
class Integral(db.Model): __tabelname__ = 'integral' __table_args__ = {"useexisting": True} id = db.Column(db.Integer, primary_key=True, autoincrement=True) integrals = db.Column(db.String(50), default='0') # 积分 goal = db.Column(db.String(50), default='0') # 进球数 lose = db.Column(db.String(50), default='0') # 丢球数 clean = db.Column(db.String(50), default='0') # 净胜球 ball_id = db.Column(db.Integer, db.ForeignKey('ball.id')) # 球队id外键 ranks = db.relationship('Ball', backref=backref('integrals', uselist=False)) # 积分对应的球队:obj=Integral.ranks create_time = db.Column(db.DateTime, default=datetime.now) def __repr__(self): return '<Integral: 球队id: %s 球队积分: %s >' % ( self.ball_id, self.integrals, )
class VoteComment(db.Model): __tablename__ = 'vote_comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_ip = db.Column(db.Text, nullable=False) is_up = db.Column(db.Boolean) comment_id = db.Column(db.Integer, db.ForeignKey('comment.id')) def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict def __init__(self, id, user_ip, is_up, comment_id): self.id = id self.user_ip = user_ip self.is_up = is_up self.comment_id = comment_id
class Quote(db.Model): """Quote table for database """ id = db.Column(db.Integer, primary_key=True) content = db.Column(db.String(220)) timestamp = db.Column(db.DateTime, index=True, default=datetime.now) user_id = db.Column(db.Integer, db.ForeignKey("user.id")) @property def fmt_time(self): return self.timestamp.strftime("%B %d, %A %H:%M") def __repr__(self): # Talvez mudar return f"<Quote {self.id}, {self.content[:15]}...>"
class Hydrology_data(db.Model): __tablename__ = 'hydrology_data' # 海洋水文数据集表格的主键ID id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 海洋水文数据集表格数据本身在文件夹存储的位置 data_route = db.Column(db.String(100), nullable=False) # 海洋水文数据集表格数据名称 data_name = db.Column(db.String(100), nullable=False) # 海洋水文数据集上传时间 data_time = db.Column(db.DateTime, nullable=False, default=datetime.now) # 海洋水文数据集数据格式 data_format = db.Column(db.String(100), nullable=False) # 海洋水文数据集表格所属门类 data_kind = db.Column(db.String(100), nullable=False) # 海洋水文数据集表格更新频率 data_refresh = db.Column(db.String(100), nullable=False) # 定义海洋水文到海洋水文数据集表格对象的外键 uid_hydrology = db.Column(db.Integer, db.ForeignKey("marine_hydrology.id")) # 定义海洋水文数据及表格本身的下载次数 down_time = db.Column(db.Integer, nullable=False)
class Contents(db.Model): __tablename__ = 'contents' novels_id = db.Column(db.Integer, db.ForeignKey('novels.id')) 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) create_time = db.Column(db.DateTime, default=datetime.now) author = db.relationship('Novels', backref=db.backref('questions')) # class Answer(db.Model): # __tablename__ = 'answer' # 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) # question_id=db.Column(db.Integer, db.ForeignKey('question.id')) # author_id=db.Column(db.Integer, db.ForeignKey('user.id')) # # question=db.relationship('Question',backref=db.backref('answers',order_by=create_time.desc())) # author = db.relationship('User', backref=db.backref('answers'))
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) student_number = db.Column(db.String(64), index=True, unique=True, nullable=False) password = db.Column(db.String(64), nullable=False) name = db.Column(db.String(64), nullable=False) class_master = db.Column(db.Boolean, nullable=False) class_id = db.Column(db.Integer, db.ForeignKey('fzu_class.id')) def __init__(self, student_number, password, name): self.class_master = False self.student_number = student_number self.password = password self.name = name def __repr__(self): return '<用户名:{}>'.format(self.name)
class Vote(db.Model): __tablename__ = 'vote' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_ip = db.Column(db.Text, nullable=False) is_up = db.Column(db.Boolean) article_id = db.Column(db.Integer, db.ForeignKey('article.id')) article = db.relationship('Article', backref=db.backref('votes')) def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict def __init__(self, id, user_ip, is_up, article_id): self.id = id self.user_ip = user_ip self.is_up = is_up self.article_id = article_id
class Video(db.Model): __bind_key__ = bind_key __tablename__ = 'video' id = db.Column(db.Integer, primary_key=True, autoincrement=True) video = db.Column(db.String(100)) cover = db.Column(db.String(100)) title = db.Column(db.String(100)) type = db.Column(db.Integer, default=0) sign = db.Column(db.String(250)) duration = db.Column(db.String(80)) collections = db.Column(db.Integer, default=0) coins = db.Column(db.Integer, default=0) views = db.Column(db.Text(10000)) comments = db.Column(db.Integer, default=0) danmuku = db.Column(db.Integer, default=0) likes_user = db.Column(db.Text(10000)) upload_time = db.Column(db.DateTime, default=datetime.now) # 建立外键关联 uid = db.Column(db.Integer, db.ForeignKey("user.id")) author = relationship("User", backref="videos")
class Admin(db.Model): __tablename__ = "admin" admin_id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey("user.user_id"), nullable=False) delete_type = db.Column(db.SMALLINT, nullable=False, default=0, comment='(0:正常,1:删除)') def __init__(self, delete_type): self.delete_type = delete_type def save(self): db.session.add(self) db.session.commit() def __rper__(self): return '<Admin:%r>' % self.__tablename__