Uwaga: to jest specyficzne dla Flask!
Wiem, że ten post jest dość stary, ale w nowszych wersjach Flaska są lepsze metody na zrobienie tego przy użyciu procesorów kontekstu.
Zmienne można łatwo tworzyć:
@app.context_processor
def example():
return dict(myexample='This is an example')
Powyższe może być użyte w szablonie Jinja2 z Flask w następujący sposób:
{{ myexample }}
(Które wyjścia This is an example
)
Oprócz pełnoprawnych funkcji:
@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)
Powyższe użyte w ten sposób:
{{ format_price(0.33) }}
(Który podaje cenę wejściową z symbolem waluty)
Alternatywnie możesz użyć filtrów jinja wypieczonych w Flasku. Np. Przy użyciu dekoratorów:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Lub bez dekoratorów i ręcznie rejestrując funkcję:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Filtry zastosowane dwiema powyższymi metodami mogą być używane w następujący sposób:
{% for x in mylist | reverse %}
{% endfor %}