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')
这个关系字段在两个多对多关系模型中任选一个定义即可。
该花的钱要花,该吃的饭要吃。