来自层次结构的 Flask SQLAlchemy 查询

Flask SQLAlchemy query from heirarchy

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

例如:

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 中为每个人提供了模式。我在这里寻找的是如何检索特定学校学生的所有学生信息(使用 SQLAlchemy)。稍后我会把这些连载成JSON.

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

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

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