Lưu ý: Đây là Flask cụ thể!
Tôi biết bài đăng này khá cũ, nhưng có nhiều phương pháp tốt hơn để làm điều này trong các phiên bản mới hơn của Flask sử dụng bộ xử lý bối cảnh.
Các biến có thể dễ dàng được tạo:
@app.context_processor
def example():
return dict(myexample='This is an example')
Ở trên có thể được sử dụng trong mẫu Jinja2 với Flask như vậy:
{{ myexample }}
(Đầu ra nào This is an example
)
Cũng như các chức năng chính thức đầy đủ:
@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)
Ở trên khi sử dụng như vậy:
{{ format_price(0.33) }}
(Điều này đưa ra giá đầu vào với ký hiệu tiền tệ)
Ngoài ra, bạn có thể sử dụng bộ lọc jinja , nướng vào Flask. Ví dụ: sử dụng trang trí:
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
Hoặc, không có trang trí và đăng ký chức năng theo cách thủ công:
def reverse_filter(s):
return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
Các bộ lọc được áp dụng với hai phương pháp trên có thể được sử dụng như thế này:
{% for x in mylist | reverse %}
{% endfor %}