Remarque: ceci est spécifique à Flask!
Je sais que cet article est assez ancien, mais il existe de meilleures méthodes pour le faire dans les nouvelles versions de Flask utilisant des processeurs de contexte.
Les variables peuvent être facilement créées:
@app.context_processor
def example():
return dict(myexample='This is an example')
Ce qui précède peut être utilisé dans un modèle Jinja2 avec Flask comme ceci:
{{ myexample }}
(Quelles sorties This is an example
)
Ainsi que des fonctions à part entière:
@app.context_processor
def utility_processor():
def format_price(amount, currency=u'€'):
return u'{0:.2f}{1}'.format(amount, currency)
return dict(format_price=format_price)
Ce qui précède lorsqu'il est utilisé comme ceci:
{{ format_price(0.33) }}
(Qui sort le prix d'entrée avec le symbole monétaire)
Vous pouvez également utiliser des filtres jinja , cuits dans Flask. Par exemple en utilisant des décorateurs:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Ou, sans décorateurs, et en enregistrant manuellement la fonction:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Les filtres appliqués avec les deux méthodes ci-dessus peuvent être utilisés comme ceci:
{% for x in mylist | reverse %}
{% endfor %}