Python Bottle模板问题:AttributeError("'dict'对象没有属性'city'",)

Kyl*_*son 2 python mongodb bottle

作为一个学习项目,我使用MongoDB with Bottle作为Web服务.我想要做的是从MongoDB获取结果并将其显示在模板中.这是我想要的模板输出:

output.tpl
<html><body>
%for record in records:
   <li>{{record.city}} {{record.date}}
%end
</body></html>
Run Code Online (Sandbox Code Playgroud)

我可以把数据拉出来没问题:

result = db.records.find(query).limit(3)
return template('records_template', records=result)
Run Code Online (Sandbox Code Playgroud)

但这导致根本没有输出 - 一些调试显示结果是某种光标:

<pymongo.cursor.Cursor object at 0x1560dd0>
Run Code Online (Sandbox Code Playgroud)

所以我试图将其转换为模板所需的内容:

result = db.records.find(query).limit(3)
viewmodel=[]
for row in result:
  l = dict()
  for column in row:
    l[str(column)]=row[column]
  viewmodel.append(l)
return template('records_template', records=viewmodel)
Run Code Online (Sandbox Code Playgroud)

调试显示我的视图数据看起来没问题:

[{'_id': ObjectId('4fe3dfbc62933a0338000001'),
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'},
 {'_id': ObjectId('4fe3dfbd62933a0338000088')
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'},
 {'_id': ObjectId('4fe3dfbd62933a0338000089')
  'city': u'CityName',
  'date': u'Thursday June 21, 2012'}]
Run Code Online (Sandbox Code Playgroud)

但这是我得到的回应.有什么想法吗?

AttributeError("'dict'对象没有属性'city'",)

编辑:我添加了关于l [str(column)] = row [column]的位,以便在出现问题的情况下将字典键转换为非unicode字符串,但它似乎无关紧要.

Tre*_*vor 14

您需要使用字典语法来查找属性:

{{record['city']}} {{record['date']}}
Run Code Online (Sandbox Code Playgroud)