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

Posted chao666

tags:

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

案例代码:

table_relation = db.Table(stu_tea_rel,  # 关系表明
                          db.Column(stu_id, db.Integer, db.ForeignKey(student.id)), # 多关系表的主键
                          db.Column(tea_id, db.Integer, db.ForeignKey(teacher.id)))    # 多关系表的主键


class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))


class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    students = db.relationship(Student,
                               backref=teacher,
                               lazy=dynamic)

代码分析:

1. 分别创建两个多关系模型

class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))


class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

2. 创建多对多关系表

table_relation = db.Table(stu_tea_rel,
                          db.Column(stu_id, db.Integer, db.ForeignKey(student.id)),
                          db.Column(tea_id, db.Integer, db.ForeignKey(teacher.id)))

3. 在模型类中添加多对多关系字段

class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    students = db.relationship(Student,
                               backref=teacher,
                               lazy=dynamic)

这个关系字段在两个多对多关系模型中任选一个定义即可。

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

Hibernate框架进阶(中篇)之多表关系

Flask/SQLAlchemy - 多对多关系的关联模型和关联表之间的区别?

第六模块:WEB框架开发 第1章·Django框架开发50~100

MyBatis注解开发之多对多查询

Django框架之ORM的相关操作之多对多三种方式

Hibernate关联关系之多对多