Catatan: Ini khusus untuk Labu!
Saya tahu posting ini cukup lama, tetapi ada metode yang lebih baik untuk melakukan ini di versi Flask yang lebih baru menggunakan pemroses konteks.
Variabel dapat dengan mudah dibuat:
@app.context_processor
def example():
return dict(myexample='This is an example')
Di atas dapat digunakan dalam template Jinja2 dengan Labu seperti:
{{ myexample }}
(Output mana This is an example
)
Serta fungsi lengkap penuh:
@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)
Di atas ketika digunakan seperti:
{{ format_price(0.33) }}
(Yang menampilkan harga input dengan simbol mata uang)
Atau, Anda dapat menggunakan filter jinja , yang dimasukkan ke dalam Flask. Misalnya menggunakan dekorator:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Atau, tanpa dekorator, dan mendaftarkan fungsi secara manual:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Filter yang diterapkan dengan dua metode di atas dapat digunakan seperti ini:
{% for x in mylist | reverse %}
{% endfor %}