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框架之多对多关系模型类的定义的主要内容,如果未能解决你的问题,请参考以下文章
Flask/SQLAlchemy - 多对多关系的关联模型和关联表之间的区别?