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(200), nullable=True) create_time = db.Column(db.DateTime, default=datetime.now) permissions = db.Column(db.Integer, default=CMSPermission.VISITOR) users = db.relationship('CMSUser', secondary=cms_role_user, backref='roles')
class Question(db.Model): __tablename__ = 'question' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) type_id = db.Column(db.Integer, db.ForeignKey('type.id')) type = db.relationship('Type', backref=db.backref('questions')) status_id = db.Column(db.Integer, db.ForeignKey('status.id')) status = db.relationship('Status', backref=db.backref('questions')) reporter = db.Column(db.String(50)) assignee = db.Column(db.String(50)) content = db.Column(db.Text, nullable=False) estimated = db.Column(db.Float) remaining = db.Column(db.Float) log = db.Column(db.Float) # 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 QuestionModel(db.Model): __tablename__ = 'questions' 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.datetime.now) author_id = db.Column(db.String(100), db.ForeignKey('users.id')) author = db.relationship('UserModel', backref='questions') __mapper_args__ = {'order_by': create_time.desc()}
class Answer(db.Model): __tablename__ = 'Answer' id = db.Column(INTEGER(11), primary_key=True) idQuestion = db.Column(ForeignKey('Question.id', ondelete='CASCADE'), nullable=False, index=True) sql = db.Column(String(400), nullable=False) json = db.Column(String(600)) Question = db.relationship('Question')
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) # datetime.now() 是服務器第一次運行的時間 # datetime.now 是每次建立一個model時,都取得當前的時間 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 Question(db.Model): __tablename__ = 'questions' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(11), nullable=False) content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) # table的名字 author_id = db.Column(db.Integer, db.ForeignKey('users.id')) author = db.relationship('User', backref=db.backref('questions'))
class Aboutme(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) content = db.Column(db.BLOB, nullable=False) create_datetime = db.Column(db.DateTime, default=datetime.now) update_datetime = db.Column(db.DateTime) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False, unique=True) user = db.relationship('User', backref='aboutme')
class Book(db.Model): __table_name__ = 'book' id = db.Column(db.Integer, primary_key=True, autoincrement=True) book_name = db.Column(db.String(255), nullable=False) book_url = db.Column(db.String(200), nullable=False) book_author = db.Column(db.String(50), nullable=False) book_cover_url = db.Column(db.String(200)) book_describe = db.Column(db.Text) type_id = db.Column(db.Integer, db.ForeignKey("book_type.id")) # 反向查询 type = db.relationship('BookType', backref=db.backref('books'))
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) # 非空 creat_time = db.Column(db.DateTime, default=datetime.now) permission = db.Column(db.Integer, default=CMSPersmission.VISITOR) # 默认先给游客权限 # 反向查询属性,关联中间表secondary=cms_role_user,对应了CMS_User模型,建立模型联系,不映射到数据库中 users = db.relationship('CMS_User', secondary=cms_role_user, backref="roles") # roles是CMS_User的外键
class Post(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(30), nullable=False) context = db.Column(db.Text, nullable=False) create_time = db.Column(db.DateTime, default=datetime.datetime.now) update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) read_count = db.Column(db.Integer, default=0) is_removed = db.Column(db.Boolean, default=False) author_id = db.Column(db.String(100), db.ForeignKey('front_user.id')) board_id = db.Column(db.Integer, db.ForeignKey('board.id')) highlight_id = db.Column(db.Integer, db.ForeignKey('highlight.id')) author = db.relationship('Regist', backref='posts') board = db.relationship('Boards', backref=db.backref('posts', lazy='dynamic')) highlights = db.relationship('Highlightmodel', backref='post', uselist=False)
class Article(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(50), nullable=False) content = db.Column(db.BLOB, nullable=False) pdatetime = db.Column(db.DateTime, default=datetime.now) clickNum = db.Column(db.Integer, default=0) saveNum = db.Column(db.Integer, default=0) love = db.Column(db.Integer, default=0) userId = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) comments = db.relationship('Comment', backref='articles') type_id = db.Column(db.Integer, db.ForeignKey('article_type.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 User(db.Model): '''用户表''' id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键、自动增长 username = db.Column(db.String(30), nullable=False) # 用户名 password = db.Column(db.String(255), nullable=False) # 密码 phone = db.Column(db.String(11), unique=True, nullable=False) # 手机,唯一 # 用户头像,保存文件路径 icon = db.Column(db.String(255), default='upload/icon/default_icon.jpg') register_time = db.Column(db.DateTime, default=datetime.now()) # 注册时间 is_delete = db.Column(db.Boolean, default=False) # 是否逻辑删除,False否,True是 # 一对多关系:一个用户多篇文章:关联查询 # 建立文章跟用户的关系 1、对应哪个类 2、反向引用:Arcitle.user.username articles = db.relationship('Article', backref='user') # 不用迁移,不在数据库层面 # 跟评论建立关系 comments = db.relationship('Comment', backref='user') # 直接打印User会输出username def __str__(self): return self.username
class Goods(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) gname = db.Column(db.String(100), nullable=False) price = db.Column(db.Float, nullable=False) # back reference users = db.relationship('User', backref='goodslist', secondary='user_goods') def __str__(self): return self.gname
class PostModel(db.Model): __tablename__ = 'post' 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) content_html = db.Column(db.Text) create_time = db.Column(db.DateTime, default=datetime.now) board_id = db.Column(db.Integer, db.ForeignKey("cms_board.id")) author_id = db.Column(db.String(40), db.ForeignKey("front_user.id")) # 1表示被删除,0表示未删除,默认为0 is_delete = db.Column(db.Integer, default=0) read_count = db.Column(db.Integer, default=0) like_count = db.Column(db.Integer, default=0) comment_count = db.Column(db.Integer, default=0) board = db.relationship("BoardModel", backref='posts') author = db.relationship("FrontUser", backref='posts') def on_changed_content(target, value, oldvalue, initiator): '''实现markdown转HTML并进行安全验证''' # 允许上传的标签 allowed_tags = [ 'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p', 'img', 'video', 'div', 'iframe', 'p', 'br', 'span', 'hr', 'src', 'class' ] # 允许上传的属性 allowed_attrs = { '*': ['class'], 'a': ['href', 'rel'], 'img': ['src', 'alt'] } # 目标设置 target.content_html = bleach.linkify( bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True, attributes=allowed_attrs))
class Goods(db.Model): __tablename__ = "goods" id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) type = db.Column(db.String(100), nullable=False) num = db.Column(db.Integer, nullable=False) price = db.Column(db.String(10), nullable=False) produce_date = db.Column(db.Date, nullable=False) guarantee_time = db.Column(db.Integer, nullable=False) # 以下操作为数据表的属性关联 provider_id = db.Column(db.Integer, db.ForeignKey('provider.id')) provider = db.relationship('Provider', backref=db.backref('goods'))
class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(20), nullable=False) password = db.Column(db.String(20), nullable=False) disk_use = db.Column(db.Float, default=0, nullable=False) is_staff = db.Column(db.Boolean, default=False, nullable=False) messages = db.relationship('Message', backref='author') def __repr__(self): return self.username
class Drug(db.Model): __tablename__ = 'drug' id = db.Column(db.Integer(), primary_key=True, autoincrement=True) num = db.Column(db.String(50), nullable=False) name = db.Column(db.String(50), nullable=False) count = db.Column(db.Integer(), nullable=False) saleCount = db.Column(db.Integer(), nullable=False, default=0) price = db.Column(db.REAL(), nullable=False, default=0) desc = db.Column(db.String(500), nullable=False) # 关联药品类别表id drugTypeId = db.Column(db.Integer(), db.ForeignKey('drugType.id')) drugType = db.relationship('DrugType', backref='drug')
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 每次创建新数据模型都会调 now 这个函数,时间会更新 create_time = db.Column(db.DateTime, default=datetime.now) # ForeignKey 指定外键 author_id = db.Column(db.Integer, db.ForeignKey('user.id')) # backref 反转: 通过 question 查找 user 发布的所有问答 author = db.relationship('User', backref=db.backref('question'))
class EoApiResultParam(db.Model): __tablename__ = 'eo_api_result_param' paramID = db.Column(db.Integer, autoincrement=True, primary_key=True) paramName = db.Column(db.String(255), nullable=False, default=None) paramKey = db.Column(db.String(255), nullable=False, default=None) paramNotNull = db.Column(db.Boolean, nullable=False) # 外键 apiID = db.Column(db.Integer, db.ForeignKey('eo_api.apiID')) # 关系 api = db.relationship("EoApi", backref="result_params")
class EoProjectStatusCode(db.Model): __tablename__ = 'eo_project_status_code' codeID = db.Column(db.Integer, primary_key=True, autoincrement=True) code = db.Column(db.String(255), nullable=False) codeDescription = db.Column(db.String(255), nullable=False) # 外键 groupID = db.Column(db.Integer, db.ForeignKey("eo_project_status_code_group.groupID")) # 关系 status_code_group = db.relationship("EoProjectStatusCodeGroup", backref="status_code")
class Article(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(50), nullable=False) content = db.Column(db.Text, nullable=False) pdatetime = db.Column(db.DateTime, default=datetime.now) click_num = db.Column(db.Integer, default=0) save_num = db.Column(db.Integer, default=0) love_num = db.Column(db.Integer, default=0) # 外键 同步到数据库的外键关系 user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) type_id = db.Column(db.Integer, db.ForeignKey('type.id'), nullable=False) comments = db.relationship('Comment', backref='article')
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与User模型中的user表单产生关系,questions与author的反向关系,即通过questions可以查看 # 该作者发表的所有问题 author = db.relationship('User', backref=db.backref('questions'))
class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True) # content = db.Column(db.String(10), nullable=False) user_id = db.Column(db.ForeignKey('user.id', ondelete='CASCADE'), nullable=False, index=True) user = db.relationship('User', primaryjoin='Article.user_id == User.id', backref='articles')
class BoardModel(db.Model): __tablename__ = 'board' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(100), nullable=False) create_time = db.Column(db.DateTime, default=datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('cms_user.id')) author = db.relationship('CMSUser', backref='boards') def __init__(self, name, author): self.name = name self.author = author
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() gets the time that the server runs for the first time #now gets the time that when the comment is posted. create_time = db.Column(db.DateTime, default=datetime.now) #foreign key author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('question'))
class Comment(db.Model): __tablename__ = 'comment' id = db.Column(db.Integer, primary_key=True, autoincrement=True) article_id = db.Column(db.Integer, db.ForeignKey('article.id')) comment_author = db.Column(db.String(10), nullable=False) comment_content = db.Column(db.Text, nullable=False) create_time = db.Column(db.DATETIME, default=datetime.now) #在评论表可以通过article关联到文章表根据article_id, 同时在文章表也可以通过comment,关联到Comment表 article = db.relationship('Article', backref=db.backref('comment', order_by=create_time.desc()))
class Question(db.Model): __tablename__ = "question" id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) context = 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('question',order_by=create_time.desc())) __mapper_args__ = {"order_by": create_time.desc()}
class Route(db.Model): __tablename__ = "route" route_id = db.Column(db.Integer, nullable=False, primary_key=True) route_name = db.Column(db.CHAR(20)) # 反向引用 bus bus = db.relationship("bus", backref="route", lazy="dynamic") # 反向引用 route_station route_station = db.relationship("route_station", backref="route", lazy="dynamic") def __init__(self, route_name): self.route_name = route_name def save(self): db.session.add(self) db.session.commit() def __rper__(self): return '<Route:%r>' % self.__tablename__
class Comment(BaseModel): __tablename__ = 'comment' content = db.Column(db.String(255), nullable=False) love_num = db.Column(db.Integer, default=0) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) news_id = db.Column(db.Integer, db.ForeignKey('news.id')) replys = db.relationship('Reply', backref='comment') def __str__(self): return self.content