Nota: ¡Esto es específico de Flask!
Sé que esta publicación es bastante antigua, pero hay mejores métodos para hacerlo en las versiones más recientes de Flask usando procesadores de contexto.
Las variables se pueden crear fácilmente:
@app.context_processor
def example():
return dict(myexample='This is an example')
Lo anterior se puede usar en una plantilla Jinja2 con Flask así:
{{ myexample }}
(Que salidas This is an example
)
Además de las funciones completas:
@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)
Lo anterior cuando se usa así:
{{ format_price(0.33) }}
(Que genera el precio de entrada con el símbolo de moneda)
Alternativamente, puede usar filtros jinja , horneados en Flask. Por ejemplo, usar decoradores:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
O, sin decoradores, y registrando manualmente la función:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Los filtros aplicados con los dos métodos anteriores se pueden usar así:
{% for x in mylist | reverse %}
{% endfor %}