flask(其四)模板与过滤器

1,在项目下创建 templates 文件夹,用于存放所有的模板文件(可以更改)

from flask import Flask, render_template
@app.route('/')
def index():
    list = ['1', '2', '3', 4]
    dir = {
        'id': 1,
        'name': '小明'
    }
    str = 'hello '
    return render_template('模块渲染2.html', list=list, dir=dir, str=str)

直接将值传递给我们需要渲染的html,渲染的页面可以直接使用。

在html页面操作视图传入的数据。

<p> 原样输出字符串{{ str }}</p>
<p>原样输出字典{{ dir }}</p>
<p>原样输出列表{{ list }}</p>
<p>输出字典的id {{ dir['id'] }}</p>
<p>输出字典的name{{ dir['name'] }}</p>

{# 循环操作列表,如果是条件语句那么就'%}'#}
{% for item in list  %}
    {{ item }} {# 输入每个值 #}
    {{ loop.index }}{# 输出索引,从1开始 #}
    {{ loop.index0 }}{# 输出索引,从0开始 #}
{% endfor %}

2,flask框架自带的过滤器,(滤器的本质就是函数操作。)

{#过滤器的使用!#}
<p>默认情况下输出!{{ 'abcdefF' }}</p>
<p>转换成大写{{ 'abcdefF'|upper }}</p>
<p>转换成小写{{ 'abcdefF'|lower }}</p>
{#执行过程是左面向右面执行!#}
<p>先转换成小写,再转换成大写{{ 'abcdefF'|lower| upper }}</p>
<p>先转换小写,再执行翻转{{ abcdefF|lower|reverse }}</p>
<p>首字母大写{{ 'abcdefF'|capitalize }}</p>
<p></p>
<p>默认情况下是开启转义的,指的是我们的代码不能作为标签使用</p>
<p>禁用转义:{{ '<h1>你好吗? </h1>'|safe }}</p>
<p></p>
<p>列表的输出!</p>
<p>默认情况之下对列表的输出!{{ [1,2,3,4,4,5,6,7] }}</p>
<p>使用过滤器sum{{ [1,2,3,4,4,5,6,7] |sum }}</p>
<p>使用过滤器sort:{{ [1,2,3,4,4,5,6,7] |sort }}</p>
<p>使用过滤器first:{{ [1,2,3,4,4,5,6,7] |first }}</p>
<p>使用过滤器last:{{ [1,2,3,4,4,5,6,7] |last }}</p>
<p>使用过滤器length:{{ [1,2,3,4,4,5,6,7] |length }}</p>

自定义过滤器(是指的是对我们输出的数据内容进行处理的自定义函数!)

#第一种通过添加到模板之中,Flask应用对象的 add_template_filter 方法
def filter_double(str):
    return str[::-2]
app.add_template_filter(filter_double,'db2')

#第二种自定义过滤器是通过装饰器的方式,过滤器会自动覆盖
@app.template_filter('db3')
def fiter_double(str):
    return str[::-3]

在html 页面调用自定义的过滤器

{# 自定义过滤器 #}
<p>默认输出;{{ 'abcdefs' }}</p>
<p>自定义过滤器:{{ 'abcdefg'| db2 }}</p>
<p>自定义转换器的第二种:{{ 'abcdefg'| db3 }}</p>

 

 

 

posted @ 2018-05-20 13:14  十七楼的羊  阅读(122)  评论(0编辑  收藏  举报