0

我将 Flask 和 SQLAlchemy 与棉花糖一起使用,并试图解决一些问题。如果我有几个在层次结构中使用外键工作的模型(表),我如何正确查询最远的孩子的结果?

例如:

class School(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name =  db.Column(db.String(50))

class Course(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    school_id = db.Column(db.Integer,db.ForeignKey('school.id'))
    school = db.relationship("School", backref=db.backref("schoola", uselist=False))

class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60))
    course_id = db.Column(db.Integer, db.ForeignKey('course.id'))
    course = db.relationship("Course", backref=db.backref("coursea", uselist=False))

我在 Marshmallow 中为每个都有 Schemas。我在这里寻找的是如何检索特定学校学生的所有学生信息(使用 SQLAlchemy)。稍后我会将这些序列化为 JSON。

4

1 回答 1

2

我对棉花糖不熟悉,但我想你可以做类似的事情:

School.query.\
         join(Course).\
         join(Course.schoola).\
         filter(School.name == 'School Name').all()

或者

Student.query \
            .join(Course) \
            .join(School) \
            .filter(School.name == 'School Name')
于 2016-12-28T23:48:05.520 回答