两张表
class Topic(db.Models):
__tablename__ = 'topic'
id = db.Column(db.Integer, primary_key = True)
content = db.Column(db.Text)
class Reply(db.Models):
__tablename = 'reply'
id = db.Column(db.Integer, primary_key = True)
topic_id = db.Column(db.Integer)
content = db.Column(db.Text)
如果用
Reply.query.join(Topic, Reply.topic_id==Topic.id).all()
查询,返回的只有表reply的实例,无法获取到表topic的内容。
注意!!我是要用flask-sqlalchemy查询,不是用sqlalchemy来查询,因为还要用到flask-sqlalchemy的paginate方法
results = (db.session.query(Topic.content.label('topic_content'), Reply.content.label('reply_content'))).select_from(Topic, Reply).filter(Topic.id==Reply.topic_id).paginate(page, per_page)
试试这个
result=Reply.query.join(Topic, Reply.topic_id==Topic.id).add_entity(Topic).all() 这样就可以了。
在jijia2模板下可以通过这种方式来访问
for res in result:
res.Reply.xxx
res.Topic.xxx