Flask框架之一对多关系模型定义

hzyuhz 2020-03-06

案例代码:

#定义模型
class BookInfo(db.Model):
    #设置表名
    __tablename__ = ‘bookinfo‘
    #设置为主键之后,自动自增长
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(20),unique=True,nullable=False)
    pub_date = db.Column(db.Date,nullable=True)
    readcount = db.Column(db.Integer,default=1)
    commentcount = db.Column(db.Integer,default=1)
    is_delete = db.Column(db.Boolean,default=False)

    # 定义一对多字段
    peopleinfo_set = db.relationship(‘PeopleInfo‘,      # 模型类名
                                     backref=‘book‘,    # 多关系模型中隐藏的对象字段
                                     lazy=‘dynamic‘)    # 是否惰性查询

    def __repr__(self):
        return self.name

class PeopleInfo(db.Model):
    __tablename__ = ‘peopleinfo‘
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(20),unique=True)
    password = db.Column(db.String(20),nullable=False)
    email = db.Column(db.String(50),nullable=True)
    #设置外键
    book_id = db.Column(db.Integer,db.ForeignKey(‘bookinfo.id‘))

    def __repr__(self):
        return self.name

代码解析:

只需要在一关系模型类中定义一个管理字段即可实现一对多关系模型的定义。

多关系类名小写_set = db.relationship(‘多关系模型名‘,backref=‘关系对象‘,lazy=‘dynamic‘)

相关推荐