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‘)这个关系字段在两个多对多关系模型中任选一个定义即可。