class AlbumLove(db.Model): __tablename__ = 'album_love' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) album_id = db.Column(db.Integer, db.ForeignKey('album.id')) addtime = db.Column(db.DATETIME, index=True, default=datetime.now)
class Comment(Base,db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True) news_id = db.Column(db.Integer,db.ForeignKey('news.id'),index=True) user_id = db.Column(db.Integer,db.ForeignKey('user.id'),index=True) content = db.Column(db.String(255)) def to_dict(self): com_list = { 'id' : self.id, 'news_id' : self.news_id, 'user_id' : self.user_id, 'content' : self.content, 'create_time' : self.create_time.strftime('%Y-%m-%d %H:%M:%S'), 'update_time' : self.update_time.strftime('%Y-%m-%d %H:%M:%S'), 'user' : User.query.filter(User.id == self.user_id).first().to_dict() } return com_list # # if __name__ == '__main__': # db.drop_all() # db.create_all() # app.run()
class Album(db.Model): __tablename__ = "album" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) # 标题 desc = db.Column(db.TEXT) # 描述 photonum = db.Column(db.Integer, default=0) # 相册图片数量 privacy = db.Column( db.String(20), default="public" ) # 是否私有private私有 protect_1粉丝好友可见 protect_2收藏者可见 public公开 clicknum = db.Column(db.Integer, default=0) # 相册浏览量 favornum = db.Column(db.Integer, default=0) # 相册收藏量 uuid = db.Column(db.String(255), unique=True, nullable=False) # uuid addtime = db.Column(db.DATETIME, index=True, default=datetime.now) # 添加时间 tag_id = db.Column(db.Integer, db.ForeignKey( "album_tag.id")) # 定义外键 tag_id 来源于album_tag表中id一个标签可有多个相册 user_id = db.Column( db.Integer, db.ForeignKey("user.id")) # 定义外键 user_id 来源于 user表中id 一个用户可有多个相册 favors = db.relationship( "AlbumFavor", backref="album") # 定义相册与收藏相册关系 通过收藏表的album_id 反向查找到相册 photos = db.relationship( "Photo", backref="album") # 定义相册与图片关系 通过图片表的album_id 反向查找到相册 def __repr__(self): return '<Album %r>' % (self.title)
class File(db.Model): __tablename__ = 'file' id = db.Column(db.Integer, primary_key=True, autoincrement=True) filename = db.Column(db.String(80), nullable=False) upload_time = db.Column(db.DateTime, default=datetime.datetime.now) size = db.Column(db.Float) category_id = db.Column(db.Integer, db.ForeignKey('category.id')) sid = db.Column(db.String(10), db.ForeignKey('student.sid')) owner = db.relationship('Student', uselist=False, backref=db.backref('file')) def __init__(self, sid, filename, upload_time, size, category_id): self.sid = sid self.filename = filename self.upload_time = upload_time self.size = size self.category_id = category_id def __str__(self): return 'File(sid=%s, filename=%s, upload_time=%s, size=%s, category_id=%s)'\ % (self.sid, self.filename, self.upload_time, self.size, self.category_id) def __repr__(self): return str(self)
class Rating(db.Model): id = db.Column(db.Integer,primary_key=True) lecture = db.relationship('Lecture', backref=db.backref('rating_lecture', cascade='all, delete-orphan', lazy='dynamic')) lecture_id = db.Column(db.Integer, db.ForeignKey(Lecture.id)) user = db.relationship('User', backref=db.backref('rating_user', cascade='all, delete-orphan', lazy='dynamic')) user_id = db.Column(db.Integer, db.ForeignKey(User.id)) total = db.Column(db.Integer, default =0) difficulty = db.Column(db.Integer, default =0) study_time = db.Column(db.Integer, default =0) attendance = db.Column(db.Integer, default =0) grade = db.Column(db.Integer, default =0) achievement = db.Column(db.Integer, default =0) opinion = db.Column(db.Text()) joinDATE = db.Column(db.DateTime(),default = get_current_time) def ev2(self): ev2 = self.difficulty /5 * 100 return ev2 def ev3(self): ev3 = self.study_time /5 * 100 return ev3 def ev4(self): ev4 = self.attendance /5 * 100 return ev4 def ev5(self): ev5 = self.grade /5 * 100 return ev5 def ev6(self): ev6 = self.achievement /5 * 100 return ev6
class PlanEQP(db.Model): # tb_pln_eqp __tablename__ = 'tb_pln_eqp' id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False) lot_id = db.Column(db.ForeignKey('tb_std_lot.id'), nullable=False) state_id = db.Column(db.String(30), nullable=False) start_t = db.Column(db.DateTime, default='Not Determind') end_t = db.Column(db.DateTime, default='Not Determind') prod_id = db.Column(db.ForeignKey('tb_std_prod.id'), nullable=False) lot_size = db.Column(db.ForeignKey('tb_ist_lot_size.id'), nullable=False) line_eqp_id = db.Column(db.ForeignKey('tb_std_line_eqp.id'), nullable=False) lot = db.relationship('StdID3', primaryjoin='PlanEQP.lot_id == StdID3.id', backref='pln_eqp', lazy=True) prod = db.relationship('StdID4', primaryjoin='PlanEQP.prod_id == StdID4.id', backref='pln_eqp', lazy=True) size = db.relationship('LotSize', primaryjoin='PlanEQP.lot_size == LotSize.id', backref='pln_eqp', lazy=True) line_eqp = db.relationship( 'StdLineEQP', primaryjoin='PlanEQP.line_eqp_id == StdLineEQP.id', backref='pln_eqp', lazy=True)
class Logger(db.Model): __tablename__ = 'logger' id = db.Column(db.Integer, primary_key=True) sn = db.Column(db.String(10), index=True, unique=True, nullable=False) tipe = db.Column(db.String(12), default="arr") location_id = db.Column(db.Integer, db.ForeignKey('location.id'), nullable=True) tenant_id = db.Column(db.Integer, db.ForeignKey('tenant.id'), nullable=True) logger_periodik = db.relationship('Periodik', back_populates='logger', lazy='dynamic') temp_cor = db.Column(db.Float) humi_cor = db.Column(db.Float) batt_cor = db.Column(db.Float) tipp_fac = db.Column(db.Float) ting_son = db.Column(db.Float) # dalam centi, tinggi sonar thd dasar sungai location = relationship('Location', backref='logger') tenant = relationship('Tenant', back_populates='loggers') created_at = db.Column(db.DateTime) modified_at = db.Column(db.DateTime) # latest_sampling = db.Column(db.DateTime) # latest_up = db.Column(db.DateTime) # latest_id = db.Column(db.Integer) def __repr__(self): return '<Device {}>'.format(self.sn)
class Comment(db.Model): id = db.Column(db.Integer, primary_key = True) location_id = db.Column(db.String(100), db.ForeignKey('Location.id')) content = db.Column(db.String(150)) user_email = db.Column(db.String(255), db.ForeignKey('User.email')) like = db.Column(db.Integer) dislike = db.Column(db.Integer) created_time = db.Column(db.DateTime(), default=db.func.now())
class Feedback(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id')) api_id = db.Column(db.Integer, db.ForeignKey('api.id')) api_url = db.Column(db.String(500)) feedback_content = db.Column(db.String(500)) feedback_type = db.Column(db.Integer, default=1) create_time = db.Column(db.DateTime, default=datetime.now) has_solved = db.Column(db.Integer)
class ProductAttribute(db.Model): product_id = db.Column(db.Integer, db.ForeignKey("product.product_id"), primary_key=True) attribute_value_id = db.Column(db.Integer, db.ForeignKey("attribute_value.attribute_value_id")) def __init__(self, attribute_value_id): self.attribute_value_id = attribute_value_id def __repr__(self): return '{} {}'.format(self.product_id, self.attribute_value_id)
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.Text) body_html = db.Column(db.Text) timestamp = db.Column(db.DateTime, default=datetime.utcnow) is_ban = db.Column(db.Boolean, default=False) author_id = db.Column(db.Integer, db.ForeignKey('users.id')) post_id = db.Column(db.Integer, db.ForeignKey('posts.id')) def __repr__(self): return '<Comment {}>'.format(self.user.username) def __str__(self): return self.user.username def hidden_comment(self): if not self.is_ban: self.is_ban = True db.session.add(self) return True return False def show_comment(self): if self.is_ban: self.is_ban = False db.session.add(self) return True return False @staticmethod def on_change_body(target, value, oldvalue, initiator): allowed_tags = [ 'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p' ] target.body_html = bleach.linkify( bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True)) def to_json(self): json_comment = { 'body': self.body, 'body_html': self.body, 'timestamp': self.timestamp, 'is_ban': self.is_ban, 'post_url': url_for('api.get_post', id=self.post_id), 'author_url': url_for('api.get_user', id=self.author_id) } return json_comment @staticmethod def form_json(json_comment): body = json_comment.get('body') if body is None or body == '': raise ValidationError('评论不能为空') return Comment(body=body)
class ProductCategoty(db.Model): product_id = db.Column(db.Integer, db.ForeignKey("product.product_id"), primary_key=True) category_id = db.Column(db.Integer, db.ForeignKey("category.category_id")) def __init__(self, category_id): self.category_id = category_id def __repr__(self): return '{} {}'.format(self.product_id, self.category_id)
class UserNotify(db.Model): __tablename__ = 'user_notification' id = db.Column('id', db.Integer, primary_key=True) user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id')) changelog_id = db.Column('changelog_id', db.Integer, db.ForeignKey('changelog.id')) read = db.Column('read', db.Integer) #changelog = db.relationship(Changelog, backref="memberships") user = db.relationship(User, backref="user_notification")
class UserConditions(db.Model): """Class for storing information about conditions of users table Attributes: __tablename__: a string of table name id: an integer of certifications of provider's id user_id: an integer of a user's id. condition_id: an integer that condition's id. condition: a string that indicate the term of a condition. condition_details: a string that explain the condition. user_answer: a string that explain the user answer of a condition. created_at: a datetime that indicates when the row created updated_at: a datetime that indicates when the row last updated response_field: a dictionary that will be used to be a guide when extracting data from database's field """ __tablename__ = "user_conditions" id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) condition_id = db.Column(db.Integer, db.ForeignKey('conditions.id'), nullable=False) condition = db.Column(db.String(100), nullable=True) condition_details = db.Column(db.String(100), nullable=True) user_answer = db.Column(db.String(1000), nullable=True) created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp()) response_fields = { 'id': fields.Integer, 'user_id': fields.Integer, 'condition_id': fields.Integer, 'condition': fields.String, 'condition_details': fields.String, 'user_answer': fields.String, } def __init__(self, data): """Inits UserConditions with data that user inputted The data already validated on the resources function Args: user_id: an integer of a user's id. condition_id: an integer that condition's id. condition: a string that indicate the term of a condition. condition_details: a string that explain the condition. user_answer: a string that explain the user answer of a condition. """ self.user_id = data['user_id'] self.condition_id = data['condition_id'] self.condition = data['condition'] self.condition_details = data['condition_details'] self.user_answer = data['user_answer']
class UserMessage(db.Model): __tablename__ = "user_message" id = db.Column(db.Integer, primary_key=True) admin_id = db.Column(db.Integer, db.ForeignKey('admin.id')) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) category = db.Column(db.String(50), nullable=False) content = db.Column(db.String(600)) addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 操作时间 def __repr__(self): return "<UserMessage %r>" % self.id
class AlbumFavor(db.Model): __tablename__ = "album_favor" id = db.Column(db.Integer, primary_key=True) user_id = db.Column( db.Integer, db.ForeignKey("user.id")) # 定义外键 user_id 来源于 user表中id 一个用户可有多个收藏相册 album_id = db.Column(db.Integer, db.ForeignKey( "album.id")) # 定义外键 album_id 来源于 album表中id 通过album_id获取到当前相册 addtime = db.Column(db.DATETIME, index=True, default=datetime.now) # 收藏时间 def __repr__(self): return '<AlbumFavor %r>' % (self.title)
class Moviecol(db.Model): """ 电影收藏 """ __tablename__ = "moviecol" id = db.Column(db.Integer, primary_key=True) # 编号 movie_id = db.Column(db.Integer, db.ForeignKey('movie.id')) # 电影id user_id = db.Column(db.Integer, db.ForeignKey("user.id")) # 用户id add_time = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间 def __repr__(self): return "<Moviecol %r>" % self.id