当前位置:   article > 正文

python学习笔记——flask之渲染模板(Jinja2)过滤器_python jinjia2渲染实例

python jinjia2渲染实例

目录

 

一、案例展示

 application.py

index.html

二、原理解释

1.{{name | trim}}中name为传进来的变量名,trim为实现过滤功能的方法名,它俩之间一个竖杠

2.相当于 将name传进trim()方法里进行处理(过滤),return返回处理后的数据,作为{{ }}最终的结果。

三、过滤方法有哪些?

1.官方文档查看

2.过滤方法分类

3.注意:支持链式使用过滤器

四、自定义过滤器(过滤器就是一个函数)

自定义函数

注册过滤器方式一:

注册过滤器方式二:


一、案例展示

 application.py

  1. # coding:utf-8
  2. from flask import Flask,render_template#render_template 渲染模板的方法
  3. app = Flask(__name__)
  4. @app.route('/index')
  5. def index():
  6. print('index访问成功')
  7. name = ' 123 '#字符串123前后有空格
  8. return render_template('index.html',name = name)#第一个参数是文件名,第二个是变量
  9. # 运行程序
  10. if __name__ == '__main__':
  11. print(app.url_map)#查看所有的路由信息
  12. app.run(host='0.0.0.0',port=80,debug=False) # 通过run()函数将web应用部署到web服务器并启动服务

index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>这是数据开头{{name}}这是数据结尾</h1>
  9. <h1>这是数据开头{{name | trim}}这是数据结尾</h1>
  10. </body>
  11. </html>

 访问:http://127.0.0.1/index

结果:

 

二、原理解释

1.{{name | trim}}中name为传进来的变量名,trim为实现过滤功能的方法名,它俩之间一个竖杠

2.相当于 将name传进trim()方法里进行处理(过滤),return返回处理后的数据,作为{{ }}最终的结果。

三、过滤方法有哪些?

1.官方文档查看

https://jinja.palletsprojects.com/en/2.11.x/templates/#list-of-builtin-filters

2.过滤方法分类

1.字符串过滤器

  1. safe:禁用转义;
  2. <p>{{ '<em>hello</em>' | safe }}</p>
  3. capitalize:把变量值的首字母转成大写,其余字母转小写;
  4. <p>{{ 'hello' | capitalize }}</p>
  5. lower:把值转成小写;
  6. <p>{{ 'HELLO' | lower }}</p>
  7. upper:把值转成大写;
  8. <p>{{ 'hello' | upper }}</p>
  9. title:把值中的每个单词的首字母都转成大写;
  10. <p>{{ 'hello' | title }}</p>
  11. trim:把值的首尾空格去掉;
  12. <p>{{ ' hello world ' | trim }}</p>
  13. reverse:字符串反转;
  14. <p>{{ 'olleh' | reverse }}</p>
  15. format:格式化输出;
  16. <p>{{ '%s is %d' | format('name',17) }}</p>
  17. striptags:渲染之前把值中所有的HTML标签都删掉;
  18. <p>{{ '<em>hello</em>' | striptags }}</p>

2.列表过滤器

  1. first:取第一个元素
  2. <p>{{ [1,2,3,4,5,6] | first }}</p>
  3. last:取最后一个元素
  4. <p>{{ [1,2,3,4,5,6] | last }}</p>
  5. length:获取列表长度
  6. <p>{{ [1,2,3,4,5,6] | length }}</p>
  7. sum:列表求和
  8. <p>{{ [1,2,3,4,5,6] | sum }}</p>
  9. sort:列表排序
  10. <p>{{ [6,2,3,1,5,4] | sort }}</p>

3.注意:支持链式使用过滤器

<p>{{ “ hello world  “ | trim | upper }}</p>

说明:

第一步:将“ hello world  “作为参数传进 trim()方法,返回结果

第二步:将上一步返回的结果,传进upper()方法里,返回结果,最为最终结果。

四、自定义过滤器(过滤器就是一个函数

自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。

自定义函数

  1. def filter_double_sort(ls):
  2. return ls[::2]

注册过滤器方式一:

通过 add_template_filter (过滤器函数, 模板中使用的过滤器名字)

  1. def filter_double_sort(ls):
  2. return ls[::2]
  3. app.add_template_filter(filter_double_sort,'double_2')

注册过滤器方式二:

通过装饰器  app.template_filter (模板中使用的装饰器名字)

  1. @app.template_filter('db3')
  2. def filter_double_sort(ls):
  3. return ls[::-3]

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/533815
推荐阅读
相关标签
  

闽ICP备14008679号