我在MongoDB集合中有'affect'字段,用于存储值列表。看起来像这样:
{
"_id" : ObjectId("51dc89712ef6af45b0a5f286"),
"affects" : [
"GS",
"WEB",
"DB",
"CB",
"ALL",
"OTHER"
],
}
在模板(html页面)中我这样做:
{% for change in changes %}
{{ change._id }}
{{ change.affects }}
{% endfor %}
当您的字段只有一个值时,这非常有效,例如_id将在我的HTML页面中以这样的方式输出:
51dc89712ef6af45b0a5f286
当有多个值时,输出结果如下:
[u'GS', u'WEB', u'DB', u'CB', u'ALL', u'OTHER']
jinja2中是否有一种方法可以迭代值列表并将它们打印出来而不带括号,引号和u?
谢谢。
答案 0 :(得分:4)
你可能需要在Jinja中使用嵌套循环,试试这个:
{% for change in changes %}
{{ change._id }}
{% for affect in change.affects %}
{{ affect }}
{% endfor %}
{% endfor %}
答案 1 :(得分:1)
我遇到类似的问题,我的修复...... 烧瓶app.py
@app.route('/mongo', methods=['GET', 'POST'])
def mongo():
# connect to database
db = client.blog
# specify the collections name
posts = db.posts
# convert the mongodb object to a list
data = list(posts.find())
return render_template('mongo_index.html', blog_info=data)
然后你的jinja模板可能看起来像这样...... mongo_index.hmtl
{% for i in blog_info %}
{{ i['url'] }}
{{ i['post'] }}
{% endfor %}
从mongodb返回的初始对象看起来像这样......
[{u'category': u'python', u'status': u'published', u'title': u'working with python', u'url': u'working-with-python', u'date': u'April 2012', u'post': u'some blog post...', u'_id': ObjectId('553b719efec0c5546ed01dab')}]
我花了一段时间才弄清楚,我想如果它看起来像一个列表,它实际上并不意味着它是一个。 :)