如何在 Flask/SQLAlchemy 中 select_related()?
How to select_related() in Flask/SQLAlchemy?
拥有以下型号:
class Question(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(125))
text = db.Column(db.Text())
answers = db.relationship('Answer', backref='for_question')
class Answer(db.Model):
id = db.Column(db.Integer(), primary_key=True)
text = db.Column(db.Text())
question_id = db.Column(db.Integer(), db.ForeignKey('question.id'))
如何在 SQLAlchemy/Flask 中执行 select_related?
我在文档中发现我可以做类似
的东西
session.query(Question).options(joinedload(Question.aswers))
但我需要先通过 id 获取特定问题,然后 select 与之相关
所以我需要这样的东西
Question.query.get(5).select_related()
我可以这样做吗?
answers = Question.query.options(joinedload(Question.answers)).get(5).answers
表达式 Question.query.options(joinedload(Question.answers)).get(5)
发出带有连接的查询并求值为 Question
实例。访问 answers
属性不会发出任何查询。
你也可以更明确地做到这一点
answers = Answer.query.filter_by(question_id=5).all()
拥有以下型号:
class Question(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(125))
text = db.Column(db.Text())
answers = db.relationship('Answer', backref='for_question')
class Answer(db.Model):
id = db.Column(db.Integer(), primary_key=True)
text = db.Column(db.Text())
question_id = db.Column(db.Integer(), db.ForeignKey('question.id'))
如何在 SQLAlchemy/Flask 中执行 select_related?
我在文档中发现我可以做类似
的东西session.query(Question).options(joinedload(Question.aswers))
但我需要先通过 id 获取特定问题,然后 select 与之相关
所以我需要这样的东西
Question.query.get(5).select_related()
我可以这样做吗?
answers = Question.query.options(joinedload(Question.answers)).get(5).answers
表达式 Question.query.options(joinedload(Question.answers)).get(5)
发出带有连接的查询并求值为 Question
实例。访问 answers
属性不会发出任何查询。
你也可以更明确地做到这一点
answers = Answer.query.filter_by(question_id=5).all()