V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hartnett
V2EX  ›  Python

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

  •  
  •   hartnett · 2013-01-17 00:40:03 +08:00 · 4408 次点击
    这是一个创建于 4354 天前的主题,其中的信息可能已经有所发展或是发生改变。
    代码片断:
    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分感谢。
    6 条回复    1970-01-01 08:00:00 +08:00
    huxuan
        1
    huxuan  
       2013-01-17 01:01:12 +08:00
    主要应该就是看在模板里如何输出字典吧,没用过tornado(表鄙视俺),不过在django和bottle里都有类似于{% for entry in entries.values() %}之类的语法,tornado应该也有吧。
    CoX
        2
    CoX  
       2013-01-17 01:06:45 +08:00
    {% for entry in entries %}
    {{ entry.username}}
    {% end %}
    hartnett
        3
    hartnett  
    OP
       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
        4
    hiwljun  
       2013-01-19 17:48:08 +08:00
    我也卡在这问题上了。

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

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


    @hiwljun
    hiwljun
        6
    hiwljun  
       2013-01-19 19:48:09 +08:00
    @yupbank 非常感谢你,问题已经解决了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:00 · PVG 06:00 · LAX 14:00 · JFK 17:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.