来自层次结构的 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')
我正在将 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')