class Article(db.Model): __tablename__ = 'article' article_id = db.Column(db.Integer, primary_key=True, autoincrement=True) auther = db.Column(db.Integer, db.ForeignKey('user.user_id')) title = db.Column(db.String(64)) article_img = db.Column(db.String(64)) #文章图片 brief = db.Column(db.Text) content = db.Column(db.Text) publish_time = db.Column(db.DateTime) #发布时间 label_id = db.Column(db.Integer, db.ForeignKey('label.label_id')) #文章标签 read_quantity = db.Column(db.Integer, default=0) # 文章阅读量 like_number = db.Column(db.Integer, default=0) # 文章点赞数 def to_dict(self): dic = { 'article_id': self.article_id, 'auther': self.auther, 'title': self.title, } return dic @staticmethod def isReadArticle(): return True
class Ingredient_in_recipe(db.Model): __tablename__ = 'ingredient_in_recipe' iid = db.Column(db.Integer, db.ForeignKey('ingredient.iid'), primary_key=True) rid = db.Column(db.Integer, db.ForeignKey('recipe.rid'), primary_key=True) quantity = db.Column(db.Float, nullable=False) def __init__(self, iid, rid, quantity): self.iid = iid self.rid = rid self.quantity = quantity @staticmethod def get_quantity_in_recipe(iid, rid): temp = Ingredient_in_recipe.query.filter(Ingredient_in_recipe.iid == iid). \ filter(Ingredient_in_recipe.rid == rid).first() if temp is None: print("The object does not exist!") else: return temp @staticmethod def get_ingredients_in_recipe(rid): temp = Ingredient_in_recipe.query.filter(Ingredient_in_recipe.rid == rid).all() if temp is None: print("The object does not exist!") else: return temp @staticmethod def add(rid, iname, quantity): iid = Ingredient.query.filter_by(iname=iname).first().iid new_relation = Ingredient_in_recipe(iid, rid, quantity) app.logger.info('add new ingredient and recipe relationship') db.session.add(new_relation) db.session.commit()
class IOU(db.Model): __tablename__ = 'iou' id = db.Column(db.Integer, primary_key=True) lender_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) borrower_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) amount = db.Column(db.Integer, nullable=False) # lender = db.relationship("User", back_populates='User', foreign_keys=[id]) # borrower = db.relationship("User", back_populates='User', foreign_keys=[id]) def __init__(self, lender_id, borrower_id, amount): self.lender_id = lender_id self.borrower_id = borrower_id self.amount = amount def __repr__(self): return '<id {}>'.format(self.id) def serialize(self): return { 'id': self.id, 'lender': self.lender_id, 'borrower': self.borrower_id, 'amount': self.amount }
class UserService(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) service_id = db.Column(db.Integer, db.ForeignKey('service.id'), nullable=False) name = db.Column(db.String(100), nullable=False, default='') project_name = db.Column(db.String(100), nullable=False, default='') a_items = db.relationship('AItem', backref='user_service', lazy=True) c_items = db.relationship('CItem', backref='user_service', lazy=True)
class Atten_user(db.Model): '''关注用户表''' __tablename__ = 'atten_user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) atten_user_id = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #关注者用户id atten_auther = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #被关注者用户id
class Issue(db.Model): __tablename__ = 'issue' oid = db.Column(db.Integer, db.ForeignKey('order.uid'), nullable=False, primary_key=True) uid = db.Column(db.Integer, db.ForeignKey('customer.uid'), nullable=False, index=True)
class Ingredient_in_cate(db.Model): __tablename__ = 'ingredient_in_cate' iid = db.Column(db.Integer, db.ForeignKey('ingredient.iid'), primary_key=True) icid = db.Column(db.Integer, db.ForeignKey('ingredient_category.icid'), primary_key=True) @staticmethod def get_ingredient_category_id(iid): temp = Ingredient_in_cate.query.filter(Ingredient_in_cate.iid == iid).first() if temp is None: print("The object does not exist!") else: return temp
class Match(db.Model): __tablename__ = 'match' id = db.Column(db.Integer, primary_key=True) player_id = db.Column( db.Integer, db.ForeignKey('tournament_player.id', name='fk_player_id')) opponent_id = db.Column( db.Integer, db.ForeignKey('tournament_player.id', name='fk_opponent_id')) result = db.Column(db.Enum('win', 'loss', 'draw'), nullable=True) color = db.Column(db.Enum('black', 'white'), nullable=True) handicap = db.Column(db.Integer, default=0) is_ranked = db.Column(db.Boolean, default=True)
class ClassyTrainingItem(db.Model): __tablename__ = "classy_training_items" classy_text_id = db.Column(db.Integer, db.ForeignKey('classy_texts.id'), primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True) classy_label_id = db.Column(db.Integer, db.ForeignKey('classy_labels.id'), primary_key=True) classy_user = db.relationship("User") classy_label = db.relationship("ClassyLabel")
class TournamentPlayer(db.Model): __tablename__ = 'tournament_player' id = db.Column(db.Integer, primary_key=True) player_id = db.Column(db.Integer, db.ForeignKey('player.id')) tournament_id = db.Column(db.Integer, db.ForeignKey('tournament.id')) rating_start = db.Column(db.Integer, nullable=False) rating_end = db.Column(db.Integer, nullable=False) is_manual = db.Column(db.Boolean, default=False) def __repr__(self): return f'Rating: {self.player_id} {self.tournament_id} {self.rating}' def __str__(self): return f'{self.player_id} {self.tournament_id} {self.rating}'
class Comment(db.Model): '''文章评论表''' __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) comment_article_id = db.Column(db.Integer, db.ForeignKey('article.article_id'), nullable=False) #回复的文章 id comment_user_id = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #用户 id comment_content = db.Column(db.Text, nullable=False) #评论内容 comment_time = db.Column( db.DateTime, nullable=False, default=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) #评论时间
class Message(db.Model): '''用户留言表''' __tablename__ = 'message' id = db.Column(db.Integer, primary_key=True, autoincrement=True) messager = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #留言者用户 id messager_other = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #被留言者用户 id message_time = db.Column( db.DateTime, nullable=False, default=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) #留言时间 message_content = db.Column(db.Text, nullable=False) #留言内容
class IssueHistory(db.Model): """This class is used for issueHistory table in database.""" __tablename__ = 'issue_History' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.ForeignKey(u'users.id')) issue_id = db.Column(db.ForeignKey(u'issues.id'), index=True) status_id = db.Column(db.ForeignKey(u'statuses.id'), index=True) transaction_date = db.Column(db.Date) delete_date = db.Column(db.Date) issue = db.relationship(u'Issue') status = db.relationship(u'Status') user = db.relationship(u'User')
class employeecontact(db.Model): """docstring for employeecontact""" emp_id = db.Column(db.Integer, primary_key=True) emp_org_id = db.Column(db.Integer, db.ForeignKey('org.org_id'), nullable=False) first_name = db.Column(db.VARCHAR(250), nullable=True) last_name = db.Column(db.VARCHAR(250), nullable=True) emp_designation = db.Column(db.VARCHAR(250), nullable=True) emp_mailid = db.Column(db.VARCHAR(250), nullable=True) emp_linkedin = db.Column(db.VARCHAR(250), nullable=True) emp_phonnumber = db.Column(db.VARCHAR(250), nullable=True) emp_directphone = db.Column(db.VARCHAR(250), nullable=True) def __init__(self, emp_org_id, first_name, last_name, emp_designation, emp_mailid, emp_linkedin, emp_phonnumber, emp_directphone): # super(employeecontact, self).__init__() # self.arg = arg self.emp_org_id = emp_org_id self.first_name = first_name self.last_name = last_name self.emp_designation = emp_designation self.emp_mailid = emp_mailid self.emp_linkedin = emp_linkedin self.emp_phonnumber = emp_phonnumber self.emp_directphone = emp_directphone
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=id.desc())) author = db.relationship('User', backref=db.backref('answers')) # if __name__ == '__main__': # # db.create_all() # pass
class Expenses(db.Model): __tablename__ = "expenses" id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) payee = db.Column(db.String, nullable=False) description = db.Column(db.String, nullable=False) amount = db.Column(db.Float, nullable=False) date = db.Column(db.String, nullable=False) created_at = db.Column(db.DateTime, nullable=False) modified_at = db.Column(db.DateTime, nullable=False) def __init__(self, user_id, payee, description, amount, date): self.user_id = user_id self.payee = payee self.description = description self.amount = amount self.date = date self.created_at = datetime.now() self.modified_at = datetime.now() def serialize(self): return { 'id': self.id, 'payee': self.payee, 'description': self.description, 'amount': self.amount, 'date': self.date }
class Phone(db.Model): __tablename__ = "phone" id = db.Column(db.Integer, primary_key=True, autoincrement=True) model = db.Column(db.String(32)) price = db.Column(db.String(32)) company_name = db.Column( db.String(20), db.ForeignKey('company.name')) # 创建与company.name关联的外键 company = db.relationship("Company", backref="phone_of_company")
class Sales(db.Model): # __tablename__ = 'sales' # __table_args__ = (UniqueConstraint('show_id', 'merch_id', 'merch_name', name='sales_table_unique_constraint_show-id_merch-id_merch-name'),) #sales_id = db.Column(db.Integer, primary_key=True) # show_id = db.Column(db.Integer, db.ForeignKey('shows.show_id', onupdate="CASCADE", ondelete="CASCADE", nullable=False)) # merch_id = db.Column(db.Integer, db.ForeignKey('merch.merch_id', onupdate="CASCADE", nullable=False)) # merch_name = db.Column(db.String, db.ForeignKey('merch.merch_name', onupdate="CASCADE", nullable=False)) #show_id = db.Column(db.Integer, db.ForeignKey('shows.show_id'), nullable=False) # merch_id = db.Column(db.Integer, db.ForeignKey('merch.merch_id'), nullable=False) __tablename__ = 'sales' __table_args__ = (UniqueConstraint('show_id', 'merch_name', name='unique_show_merch'),) sale_id = db.Column(db.Integer, primary_key=True, autoincrement=True) show_id = db.Column(db.Integer, db.ForeignKey('shows.show_id', onupdate='CASCADE', ondelete='CASCADE'), nullable=False) merch_name = db.Column(db.String, db.ForeignKey('merch.merch_name', onupdate='CASCADE', ondelete='CASCADE'), nullable=False) num_sold = db.Column(db.Integer, default=0, nullable=False) def __init__(self, show_id, merch_id, merch_name, num_sold): self.show_id = show_id self.merch_id = merch_id self.merch_name = merch_name self.num_sold = num_sold def __repr__(self): template = 'show_id: {} merch_name: {} number_sold: {}' return template.format(self.show_id, self.merch_name, self.num_sold) # rel_show_id = db.relationship("Sales", foreign_keys=show_id, back_populates="rel_sales") # rel_merch_id = db.relationship("Merch", foreign_keys=merch_id, back_populates="rel_sales_id") # rel_merch_name = db.relationship("Merch", foreign_keys=merch_name, back_populates="rel_sales_name") # show = db.relationship(Show, foreign_keys=show_id) # item_id = db.relationship(Merch, foreign_keys=merch_id) # item_name = db.relationship(Merch, foreign_keys=merch_name) # def __init__(self, show_id, merch_id, merch_name, num_sold): # self.show_id = show_id # self.merch_id = merch_id # self.merch_name = merch_name # self.num_sold = num_sold # # def __repr__(self): # template = 'show_id: {} merch_id: {} merch_name: {} number_sold: {}' # return template.format(self.show_id, self.merch_id, self.merch_name, self.num_sold)
class User_Reply(db.Model): '''用户回复表''' __tablename__ = 'user_reply' id = db.Column(db.Integer, primary_key=True, autoincrement=True) replay_kuang = db.Column(db.Integer, db.ForeignKey('comment.id'), nullable=False) #针对哪个框的用户发起回复 replay_user = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #被回复的用户 id replay_user_self = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #回复的用户 id replay_content = db.Column(db.Text, nullable=False) #针对用户的回复内容 replay_time = db.Column( db.DateTime, nullable=False, default=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) #评论时间
class Video(db.Model): __tablename__ = 'video' vid = db.Column(db.Integer, primary_key=True) vtitle = db.Column(db.String(100), nullable=False) savename = db.Column(db.String(100)) vcontent = db.Column(db.String(500), nullable=True) up_date = db.Column(db.Date) hits = db.Column(db.Integer, default=0) user_id = db.Column(db.Integer, db.ForeignKey('user.user_id'))
class ClassyText(db.Model): __tablename__ = 'classy_texts' id = db.Column(db.Integer, primary_key=True) file_name = db.Column(db.String(1000)) file_created = db.Column(db.DateTime()) classification_text = db.Column(db.Text()) last_updated = db.Column(db.DateTime()) classy_job_id = db.Column(db.Integer, db.ForeignKey('classy_jobs.id')) training_items = db.relationship("ClassyTrainingItem")
class Receipt(db.Model): __tablename__ = 'receipts' id = db.Column(db.Integer, primary_key=True) user = db.Column(db.String(35), db.ForeignKey('users.name')) name = db.Column(db.String(50)) category = db.Column(db.String(25), db.ForeignKey('categories.name')) cost = db.Column(db.Numeric) date = db.Column(db.DateTime) @property def serialize(self): return { 'id': self.id, 'user': self.user, 'name': self.name, 'category': self.category, 'cost': float(self.cost), 'date': self.date }
class Issue(db.Model): """This class is used for issues table in database.""" __tablename__ = 'issues' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) user_id = db.Column(db.ForeignKey(u'users.id'), index=True) category_id = db.Column(db.ForeignKey(u'category.id'), nullable=False, index=True) location = db.Column(db.Text) description = db.Column(db.Text) open_date = db.Column(db.Date) close_date = db.Column(db.Date) delete_date = db.Column(db.Date) category = db.relationship(u'Category') user = db.relationship(u'User')
class ImagesUpload(db.Model): '''图片上传表''' __tablename__ = 'imagesupload' id = db.Column(db.Integer, primary_key=True, autoincrement=True) uploader = db.Column(db.Integer, db.ForeignKey('user.user_id'), nullable=False) #图片所属用户 id imagename = db.Column(db.String(64)) imagebrief = db.Column(db.String(128)) #图片简介 imagetime = db.Column(db.DateTime, nullable=False)
class Attendees(db.Model): __tablename__ = 'attendees' id = db.Column(db.Integer, primary_key=True) mailid = db.Column(db.String(120), nullable=False) event_id = db.Column(db.Integer, db.ForeignKey('events.id'), nullable=False) def __repr__(self): return f'{self.id} {self.user_id} {self.event_id}'
class PrivateJoinReq(db.Model): __tablename__ = 'private_join_req' id = db.Column(db.Integer, primary_key=True) mailid = db.Column(db.String(120), nullable=False) event_id = db.Column(db.Integer, db.ForeignKey('events.id'), nullable=False) def __repr__(self): return f'{self.id} {self.mailid} {self.event_id}'
class Question(db.Model): __tablename__ = 'question' 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) # 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 Attachment(db.Model): """This class is used for attachment table in database.""" __tablename__ = 'attachments' id = db.Column(db.Integer, primary_key=True) issue_id = db.Column(db.ForeignKey(u'issues.id'), index=True) image_url = db.Column(db.Text) delete_date = db.Column(db.Date) issue = db.relationship(u'Issue')
class ClientItem(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False, default='') item_type = db.Column( db.Boolean, default=False, nullable=True) # If True ,pre assessment. If False, post assessment matched_item = db.Column(db.Integer, nullable=False, default=0) service_id = db.Column(db.Integer, db.ForeignKey('service.id'), nullable=False) function = db.Column(db.Integer, nullable=False, default=0)
class OrderContainsRecipe(db.Model): __tablename__ = 'order_contain_recipes' oid = db.Column(db.Integer, db.ForeignKey('order.oid'), primary_key=True) rid = db.Column(db.Integer, db.ForeignKey('recipe.rid'), primary_key=True) quantity = db.Column(db.Integer, nullable=False) recipe_price = db.Column(db.DECIMAL) @staticmethod def getOrderRecipe(oid): temp = OrderContainsRecipe.query.filter(OrderContainsRecipe.oid == oid).all() if temp is None: print("The order does not exist!") return None else: return temp def __init__(self, oid, rid, quantity, price): self.oid = oid self.rid = rid self.quantity = quantity self.recipe_price = price