Flask jinja正确显示日期字段

时间:2017-10-20 18:07:25

标签: flask jinja2 pymongo

我找到了一种从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}

1 个答案:

答案 0 :(得分:1)

您所看到的是此日期的时间戳,有两种方法可以解决此问题:

你可以在你查看的内部使用它,在将数组发送到Jinja模板之前将日期转换为可读格式

from datetime import datetime
datetime.fromtimestamp(the_date_you_want_to_convert)

或者您可以创建simple Jinja filter which将给定时间戳转换为您的可读日期格式。