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

Posted chao666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask框架之一对多关系模型定义相关的知识,希望对你有一定的参考价值。

案例代码:

#定义模型
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)

以上是关于Flask框架之一对多关系模型定义的主要内容,如果未能解决你的问题,请参考以下文章

Flask框架从入门到精通之模型关系(十七)

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

flask中常见的关系模型定义

一对多和递归关系 - 强制设置值

深入浅出Flask(49):flask_sqlalchemy的创建一对多的关系表

Flask--(一对多)模型渲染表单数据