簡體   English   中英

Python Bottle模板問題:AttributeError(“'dict'對象沒有屬性'city'”,)

[英]Python Bottle template issue: AttributeError(“'dict' object has no attribute 'city'”,)

作為一個學習項目,我使用MongoDB with Bottle作為Web服務。 我想要做的是從MongoDB獲取結果並將其顯示在模板中。 這是我想要的模板輸出:

output.tpl
<html><body>
%for record in records:
   <li>{{record.city}} {{record.date}}
%end
</body></html>

我可以把數據拉出來沒問題:

result = db.records.find(query).limit(3)
return template('records_template', records=result)

但這導致根本沒有輸出 - 一些調試顯示結果是某種光標:

<pymongo.cursor.Cursor object at 0x1560dd0>

所以我試圖將其轉換為模板所需的內容:

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)

調試顯示我的視圖數據看起來沒問題:

[{'_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'}]

但這是我得到的回應。 有什么想法嗎?

AttributeError(“'dict'對象沒有屬性'city'”,)

編輯:我添加了關於l [str(column)] = row [column]的位,以便在出現問題的情況下將字典鍵轉換為非unicode字符串,但它似乎無關緊要。

您需要使用字典語法來查找屬性:

{{record['city']}} {{record['date']}}
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)

可歸納為:

result = db.records.find(query).limit(3)
return template('records_template', records=list(result))

Python的美麗......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM