mongodb中查出来的数据如何向tornado的模板传参数?

2013-01-17 00:40:03 +08:00
 hartnett
代码片断:
entries = db.mylog.find({'username':username}).limit(10)
for item in entries:
print item

self.render("templates/entry.html", entries=entries)

entries的值是个pymongo.cursor.Cursor,"<pymongo.cursor.Cursor object at 0x027B25B0>",实际包含的值是一堆字典:
{u'username': u'\u5f20\u5fd7\u7965', u'szcontent': u'\u771f\u4ed6\u5a18\u7684\u7325\u7410\u554a', u'sztime': datetime.datetime(2012, 9, 28, 10, 49, 53), u'is_indb': 0L, u'recvname': u'\u55bb\u5fd7\u6587;\u59da\u78ca;\u65b9\u5149;\u6885\u6dcb;\u8d75\u4eae;\u95eb\u6d69;\u9648\u5bc5\u6770;\u9f99\u98de;\u9f9a\u660e', u'_id': ObjectId('50e5903ceb62f732ecde2bbd')} {u'username': u'\u5f20\u5fd7\u7965', u'szcontent': u'\u771f\u4ed6\u5a18\u7684\u7325\u7410\u554a', u'sztime': datetime.datetime(2012, 9, 28, 10, 49, 53), u'is_indb': 0L, u'recvname': u'\u55bb\u5fd7\u6587;\u59da\u78ca;\u65b9\u5149;\u6885\u6dcb;\u8d75\u4eae;\u95eb\u6d69;\u9648\u5bc5\u6770;\u9f99\u98de;\u9f9a\u660e', u'_id': ObjectId('50e5903ceb62f732ecde2bbd')} {u'username': u'\u5f20\u5fd7\u7965', u'szcontent': u'\u771f\u4ed6\u5a18\u7684\u7325\u7410\u554a', u'sztime': datetime.datetime(2012, 9, 28, 10, 49, 53), u'is_indb': 0L, u'recvname': u'\u55bb\u5fd7\u6587;\u59da\u78ca;\u65b9\u5149;\u6885\u6dcb;\u8d75\u4eae;\u95eb\u6d69;\u9648\u5bc5\u6770;\u9f99\u98de;\u9f9a\u660e', u'_id': ObjectId('50e5903ceb62f732ecde2bbd')} {u'username': u'\u5f20\u5fd7\u7965', u'szcontent': u'\u771f\u4ed6\u5a18\u7684\u7325\u7410\u554a', u'sztime': datetime.datetime(2012, 9, 28, 10, 49, 53), u'is_indb': 0L, u'recvname': u'\u55bb\u5fd7\u6587;\u59da\u78ca;\u65b9\u5149;\u6885\u6dcb;\u8d75\u4eae;\u95eb\u6d69;\u9648\u5bc5\u6770;\u9f99\u98de;\u9f9a\u660e', u'_id': ObjectId('50e5903ceb62f732ecde2bbd')} .......

模板中的内容为:
{% for i in entries %}
{{ i }}
{% end %}

但实际并看不到输出的内容,大家是如何处理的,请指点1,2,10分感谢。
4375 次点击
所在节点    Python
6 条回复
huxuan
2013-01-17 01:01:12 +08:00
主要应该就是看在模板里如何输出字典吧,没用过tornado(表鄙视俺),不过在django和bottle里都有类似于{% for entry in entries.values() %}之类的语法,tornado应该也有吧。
CoX
2013-01-17 01:06:45 +08:00
{% for entry in entries %}
{{ entry.username}}
{% end %}
hartnett
2013-01-17 01:43:40 +08:00
感谢2位大牛,目前用以下模板可以显示了:
{{ entries }}
{% for entry in entries %}
<li>{{ entry.values() }}
{% end %}

<pymongo.cursor.Cursor object at 0x0278F5B0>
[u'\u90ed\u4f1f', u'\u597d\u7684', datetime.datetime(2012, 9, 28, 10, 52, 53), 0L, u'\u66f9\u4f1f', ObjectId('50e5903ceb62f732ecde2c0e')]
[u'\u90ed\u4f1f', u'\u7eaf\u7cb9\u662f\u51e0\u7387\u7684\u8fd0\u6c14\u3002\u6253\u5f00\u5c31\u76f4\u63a5\u4fee\u6539\u5c5e\u6027', datetime.datetime(2012, 9, 28, 10, 45, 21), 0L, u'\u66f9\u4f1f', ObjectId('50e5903ceb62f732ecde2b47')]
hiwljun
2013-01-19 17:48:08 +08:00
我也卡在这问题上了。

{{ entry['title'] }}
现在是直接输出[u'\u90ed\u4f1f']
1.如何只输出内容,去掉[u'']。
2.如何把中文转换过来。

求助各位。
yupbank
2013-01-19 19:11:25 +08:00
[u'\u90ed\u4f1f'] 这个是list,你试试 entry['title'][0]


@hiwljun
hiwljun
2013-01-19 19:48:09 +08:00
@yupbank 非常感谢你,问题已经解决了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/57835

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX