jinja2html
參考:http://docs.jinkan.org/docs/jinja2/templates.html#variables python
1 for 循環一個對象(字典) 列表 元組如何循環flask
{% for k,v in d.items %}app
`k` `v`
ide
{%endfor%}函數
{% for key, value in my_dict.iteritems() %} <dt>{{ key|e }}</dt> <dd>{{ value|e }}</dd>{% endfor %}
元組和列表oop
{% for s in L %}spa
`s`
orm
{%endfor %}xml
L是元組 L.0 可獲取第一個值 區別python中的L[0]
2 if 語句
{% if manufacturer == 'hp' %}
'惠普'
{% elif manufacturer =='huawei'%}
'華爲'
{%else%}
'浪潮'
{%endif%}
3 設置變量
{% set active_page = 'statistics' %}
設置一個字典呢?
在html中定義一個 字典類型的變量對象
{%set business_map = {"xf_list":"新房列表頁", "xf_main": "新房樓盤主頁"%}
就能夠引用了
{{business_map["xf_list"]}}
4 格式化輸出 數字 精確位數
{{"%0.1f"| format(dashboard_ibox.get("online-number") *100 /dashboard_ibox.get("user-number"))
5 過濾
過濾器變量能夠經過 過濾器 修改。過濾器與變量用管道符號( | )分割,而且也 能夠用圓括號傳遞可選參數。多個過濾器能夠鏈式調用,前一個過濾器的輸出會被做爲 後一個過濾器的輸入。
例如 {{ name|striptags|title }} 會移除 name 中的全部 HTML 標籤而且改寫 爲標題樣式的大小寫格式。過濾器接受帶圓括號的參數,如同函數調用。這個例子會 把一個列表用逗號鏈接起來: {{ list|join(', ') }} 。
5.1 內置
{{(med_threshold[0]*1000)|int}}-{{(med_threshold[1]*1000)|int}}
自定義過濾器結合flask中
參考:
http://www.cnblogs.com/ymy124/p/4417548.html
我喜歡用這種方法:
....
from lib import filters
.....
def configure_template_filters(app):
for name in dir(filters):
if callable(getattr(filters, name)):
app.add_template_filter(getattr(filters, name))
6 去掉空格符
此外,你也能夠手動剝離模板中的空白。當你在塊(好比一個 for 標籤、一段註釋或變 量表達式)的開始或結束放置一個減號( - ),能夠移除塊前或塊後的空白:
{% for item in seq -%} {{ item }}{%- endfor %}
提示
標籤和減號之間不能有空白。
有效的:
{%- if foo -%}...{% endif %}
無效的:
{% - if foo - %}...{% endif %}
7 set賦值和計算
參考:http://stackoverflow.com/questions/3482297/how-can-i-make-a-simple-counter-with-jinja2-templates
items = [ ['foo', 'bar'], ['bax', 'quux', 'ketchup', 'mustard'], ['bacon', 'eggs'], ]print Template(""" {% set counter = 0 -%} {% for group in items -%} {% for item in group -%} item={{ item }}, count={{ counter + loop.index0 }} {% endfor -%} {% set counter = counter + group|length %} {% endfor -%} """).render(items=items)
我經常使用: 若是表格分隔不一樣的顏色
{%- set num=1 -%}
{% for item in data%}
{%- set num=num+1 -%}
.........
....