mic*_*imo 5 python sqlalchemy flask 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'))
Run Code Online (Sandbox Code Playgroud)
如何在SQLAlchemy/Flask中执行select_related?
我在文档中发现我可以做类似的事情
session.query(Question).options(joinedload(Question.aswers))
但我首先需要通过id获取具体问题,然后选择与之相关的问题
所以我需要这样的东西
Question.query.get(5).select_related()
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?
answers = Question.query.options(joinedload(Question.answers)).get(5).answers
Run Code Online (Sandbox Code Playgroud)
表达式Question.query.options(joinedload(Question.answers)).get(5)使用连接发出查询并计算Question实例.访问answers属性不会发出任何查询.
你也可以更明确地做到这一点
answers = Answer.query.filter_by(question_id=5).all()
Run Code Online (Sandbox Code Playgroud)