Not: Bu Flask'a özgüdür!
Bu yazının oldukça eski olduğunu biliyorum, ancak bunu bağlam işlemcilerini kullanarak Flask'ın yeni sürümlerinde yapmanın daha iyi yöntemleri var.
Değişkenler kolayca oluşturulabilir:
@app.context_processor
def example():
return dict(myexample='This is an example')
Yukarıda Flask ile bir Jinja2 şablonunda kullanılabilir:
{{ myexample }}
(Hangi çıktılar This is an example
)
Tam teşekküllü fonksiyonların yanı sıra:
@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)
Yukarıdaki gibi kullanıldığında:
{{ format_price(0.33) }}
(Girdi fiyatını para birimi simgesiyle veren)
Alternatif olarak, Flask'a pişmiş jinja filtreleri kullanabilirsiniz . Örneğin dekoratörler kullanmak:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Veya dekoratörler olmadan ve işlevi manuel olarak kaydetme:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Yukarıdaki iki yöntemle uygulanan filtreler şu şekilde kullanılabilir:
{% for x in mylist | reverse %}
{% endfor %}