码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-06 11:14:44      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:mic   案例   代码分析   name   teacher   lazy   模型   代码   model   

案例代码:

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框架之多对多关系模型类的定义

标签:mic   案例   代码分析   name   teacher   lazy   模型   代码   model   

原文地址:https://www.cnblogs.com/chao666/p/12424957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!