2017-10-20 42 views
0

J'ai trouvé une méthode sténographique pour aller chercher les résultats de MongoDb et passer au template jinja.Flask jinja affiche correctement les champs de date

@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) 

Et utilisateurs/index.html Je voudrais afficher les résultats comme celui-ci:

{% 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 %} 

Tout fonctionne comme prévu, sauf champs de date. Y a-t-il un moyen d'afficher correctement les champs de date?

{'$date': 1508227970796} 
{'$date': 1508228089163} 
{'$date': 1508241780398} 

Répondre

1

Ce que vous voyez est l'horodatage de cette date, il y a deux possibilités pour résoudre ce problème:

ca vous utilisez ceci à l'intérieur vous en vue de convertir la date dans un format lisible avant d'envoyer le tableau au modèle Jinja

from datetime import datetime 
datetime.fromtimestamp(the_date_you_want_to_convert) 

ou vous pouvez créer un simple Jinja filter which vous permet de convertir un horodatage dans votre donnée format de date lisible.