Le code en ligne est-il autorisé dans les modèles Jinja?
Je suis à l'aide de Jinja sur mon site et je l'aime.
Je suis venu à travers un simple besoin. Comment afficher la date d'aujourd'hui? Est-il un moyen de l'inclure du code Python dans un Jinja modèle?
import datetime
now = datetime.datetime.utcnow()
print now.strftime("%Y-%m-%d %H:%M")
Cet article dit nonmais suggère d'utiliser une macro ou un filtre?
Vraiment? Devons-nous recourir à tout cela? OK, ce que ça donnerait dans ce cas?
source d'informationauteur 010110110101
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a aucun moyen de inline Python dans Jinja. Cependant, vous pouvez ajouter à l'constructions qui Jinja sait par l'extension de la Environnement du moteur de template ou le espace de noms global disponible pour tous les modèles. Alternativement, vous pouvez ajouter un filtre qui vous permet de format datetime objets.
Flacon magasins de la Jinja2 de l'Environnement sur
app.jinja_env
. Vous pouvez injecter nouveau contexte dans l'environnement, soit en ajoutant à ce dictionnaire directement, ou par l'aide de la@app.context_processor
décorateur.Quelle que soit la voie que vous choisissez, ce qui devrait être fait lors de la définition de l'application, avant de vous avez servi à toute demande. (Voir les extraits de l'article du site web, pour certains bon exemples de la façon de mettre en place des filtres - les docs contenir un bon exemple de l'ajout de variables globales).
Vous pouvez ajouter à les variables globales qui peut être consulté à partir de Jinja modèles. Vous pouvez mettre vos propres définitions de fonction dans le il y, faire tout ce dont vous avez besoin.