如何获取对象值

简介:

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://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 -%}

.........

....

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1764825如需转载请自行联系原作者


cuizhiliang

相关文章
|
2月前
|
测试技术
反射获取或修改对象属性的值
* 获取单个对象的所有键值对
31 3
|
7月前
|
JavaScript 前端开发
get请求包含参数属性为数组
get请求包含参数属性为数组
56 1
|
2月前
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
21 0
|
前端开发 Java 数据库
SpringBoot返回枚举对象中的所有属性以对象的形式返回(一个@JSONType解决)
SpringBoot返回枚举对象中的所有属性以对象的形式返回(一个@JSONType解决)
686 0
|
前端开发
如何获取promise对象的值
如何获取promise对象的值
1226 0
|
存储 JavaScript 前端开发
访问对象的属性,你知道有哪些方法?
相信对象对于每个使用JavaScript的人来说都不陌生。访问对象的属性几乎日常开发每天都在用。下面我们一起探索下有哪些方式可以实现属性的访问。
168 0
把两个object对象合并成一个对象 属性名称相同的变为后面对象的值
把两个object对象合并成一个对象 属性名称相同的变为后面对象的值
757 0
|
API
@JsonView 处理返回值,实现接口返回想要的字段
@JsonView 处理返回的json ,实现返回需要的字段
1593 0