jinja2
参考:http://docs.jinkan.org/docs/jinja2/templates.html#variables
1 for 循环一个对象(字典) 列表 元组如何循环
{% for k,v in d.items %}
`k` `v`
{%endfor%}
{% for key, value in my_dict.iteritems() %} <dt>{{ key|e }}</dt> <dd>{{ value|e }}</dd>{% endfor %}
元组和列表
{% for s in L %}
`s`
{%endfor %}
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://*.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 -%}
.........
....
本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1764825如需转载请自行联系原作者
cuizhiliang