Nota: Isso é específico para o frasco!
Eu sei que este post é bastante antigo, mas existem métodos melhores para fazer isso nas versões mais recentes do Flask usando processadores de contexto.
Variáveis podem ser facilmente criadas:
@app.context_processor
def example():
return dict(myexample='This is an example')
O acima pode ser usado em um modelo Jinja2 com o Flask da seguinte forma:
{{ myexample }}
(Quais saídas This is an example
)
Bem como funções de pleno direito:
@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)
A descrição acima, quando usada da seguinte maneira:
{{ format_price(0.33) }}
(Que gera o preço de entrada com o símbolo da moeda)
Como alternativa, você pode usar filtros jinja , inseridos no Flask. Por exemplo, usando decoradores:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Ou, sem decoradores, e registrando manualmente a função:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Os filtros aplicados com os dois métodos acima podem ser usados assim:
{% for x in mylist | reverse %}
{% endfor %}