SQLAlchemy 两张表联表查询后获取两张表所有的字段

在实际开发中 发现 sqlAlchemy 中的一个问题

我想获得一张完整的连结表的结果

举个例子:

PostFollow 两个表格

Post 表格有 body 等列

Follow 表格有 follower_id 等列

在连结 PostFollow 的表后,对其查询

我希望获得的查询结果,能包含两个表格里的所有列,这样方便调用

data = Post.query.join(Follow,Follow.followed_id == Post.author_id).filter(Follow.follower_id == 2)

运行结果:

>>> data[0].body
'test body4'

>>>data[0].follower_id
Traceback (most recent call last):
File "<console>",line 1,in <module>
AttributeError: 'Post' object has no attribute 'follower'

从上面看到查询结果是个 Post 对象,其不含 follower 列的信息

data = Follow.query.join(Post,Follow.followed_id == Post.author_id).filter(Follow.follower_id == 2)

运行结果:

>>> data[0].body
Traceback (most recent call last):
File "<console>",in <module>
AttributeError: 'Follow' object has no attribute 'body'

>>> data[0].follower_id
2

同理,这次的 Follow 对象不含 body 列的信息

解决方案:

jijia2 模板中看到可以通过 .add_entity() 这种方式来访问,就想到是否在这里也是可以的,结果是可以的

data = Post.query.join(Follow,Follow.followed_id == Post.author_id)).add_entity(Follow).filter(Follow.follower_id == 2)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...