我正在为一些简单的论坛创建一个api,使用金字塔和sqlalchemy。我有一个视图,当用户滚动到页面末尾时,我想简单地将一些json形式的帖子返回给客户端。由于某些原因,查询甚至没有运行,我将被返回一个查询对象,而不是一个rowproxy对象。这只是一个测试查询--顺便说一句,我只是从数据库中得到了几次,并试图在json中发送它们。
@view_config(route_name='get-posts', renderer='json')
def get-posts(request)
q = session.query(Topic).filter(Topic.name =='gaming')\
.order_by(desc(Topic.topic_date)).limit(10)
results = [dict(zip(row.keys()) for row in q)]
return {'posts' : results} 当它运行时,我得到"AttributeError:‘主题’对象没有attribtue键“,在检查q的类型时,我发现它是type:sqlalchemy.orm.query.Query的
有人知道为什么没有运行查询吗?我有一个非api视图函数,我做的事情实际上是一样的,并返回结果(一个行代理作为字典的内容,它工作.
发布于 2016-11-15 22:29:28
这是故意的。查询上有导致执行基础查询的方法。所有()、一()、一()等。
如果需要将查询对象作为列表,请调用其上的所有():
@view_config(route_name='get-posts', renderer='json')
def get-posts(request)
q = session.query(Topic).filter(Topic.name =='gaming')\
.order_by(desc(Topic.topic_date)).limit(10)
return {'posts' : q.all()} 查询对象的引用:http://docs.sqlalchemy.org/en/latest/orm/query.html#the-query-object
https://stackoverflow.com/questions/40618922
复制相似问题