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>