Sqlchemy orm使用relationship函数来构建关系,适用于一对多、多对一和多对多关联,以下内容均以一对为例来进行详细说明
假设有2个关联表:class和student,model结构如下:
class Class(db.Model):
__tablename__ = 'class'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String)
class Student(db.Model):
__tablename__ = 'student'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String)
class_id = db.Column(db.Integer, db.ForeignKey('class.id'))
如果想获取一个班级里所有的学生,可以在Class model里通过relationship方法,如下所示,students会被自动识别为collections
class Class(db.Model):
__tablename__ = 'class'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String)
students = db.relations