Примітка. Це специфічна колба!
Я знаю, що ця публікація досить стара, але існують кращі методи цього робити в нових версіях Flask за допомогою контекстних процесорів.
Змінні можна легко створити:
@app.context_processor
def example():
return dict(myexample='This is an example')
Вищезазначене можна використовувати в шаблоні Jinja2 з колбою так:
{{ myexample }}
(Які виходи This is an example
)
А також повноцінні функції:
@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)
Вищезазначене при використанні так:
{{ format_price(0.33) }}
(Яка виводить ціну вводу із символом валюти)
Крім того, ви можете використовувати фільтри джинджа , запечені в колбу. Наприклад, використовуючи декоратори:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Або без декораторів та реєстрації функції вручну:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Фільтри, застосовані за допомогою двох вищеописаних методів, можна використовувати так:
{% for x in mylist | reverse %}
{% endfor %}