web.py - 如何将db.query(sql)的结果转换为字典列表?

0 投票
1 回答
2204 浏览
提问于 2025-04-16 17:34

我刚接触Python和web.py(我现在正在使用的框架),请多多包涵。

官方文档中:

import web
db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='')
results = db.query("SELECT COUNT(*) AS total_users FROM users")
print results[0].total_users # -> prints number of entries in 'users' table

看起来查询的结果是一个字典列表,格式是{total_user: num}对吧?

我的情况很相似:我在数据库上执行一个SELECT语句,希望得到一个键值对的数据列表。

在models.py文件中:

def get_items:
    return self.db.query("SELECT title FROM news")

在code.py文件中:

items = model.get_items
return render.list(items)

在templates/list.html文件中:

$def with (items)
$for item in items:
    <p>$item.title</p>

但是,这段代码出现了一个错误,提示“'tuple'对象没有'title'属性”。我哪里出错了呢?提前谢谢你的帮助。

1 个回答

0

这个会被触发,因为你只是从新闻中选择了标题属性,这显然会返回一个像 (a,b,c,d) 这样的元组。如果你想要一个对象作为结果,可以这样做:

self.db.query("SELECT * FROM news")

撰写回答