我找到了一种从MongoDb获取结果并传递给jinja模板的简写方法。
@app.route('/home')
def home():
table = mongo.db.posts
result = table.find( { } ).sort([("postdate", 1)])
records = json.loads(json_util.dumps(result))
if result.count() > 0:
return render_template('users/index.html', posts=records)
else:
message = 'I couldn't find any post'
return render_template('users/index.html', message=message)
在 users / index.html 中,我想显示如下结果:
{% for post in posts %}
<tr>
<td>{{post._id}}</td>
<td>{{post.title}}</td>
<td>{{post.author}}</td>
<td class="date">{{post.postdate}}</td>
</tr>
{% endfor %}
除日期字段外,一切都按预期工作。有没有办法正确显示日期字段?
{'$date': 1508227970796}
{'$date': 1508228089163}
{'$date': 1508241780398}
答案 0 :(得分:1)
您所看到的是此日期的时间戳,有两种方法可以解决此问题:
你可以在你查看的内部使用它,在将数组发送到Jinja模板之前将日期转换为可读格式
from datetime import datetime
datetime.fromtimestamp(the_date_you_want_to_convert)
或者您可以创建simple Jinja filter which将给定时间戳转换为您的可读日期格式。