flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html

这篇论文主要用来记录下 jinja2 的过滤器。

  • 什么是过滤器?

过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。

  • 过滤器的使用方式

使用方式:

  • 过滤器的使用方式为:变量名 | 过滤器。
  1. {{variable | filter_name(*args)}}
  • 如果没有任何参数传给过滤器,则可以把括号省略掉
  1. {{variable | filter_name}}
  • 在 jinja2 中,过滤器是可以支持链式调用的。
  1. {{ "hello world" | reverse | upper }}
  • 常用的内建过滤器

1.字符串操作

  • safe:禁用转义
  1. <p>{{ '<em>hello</em>' | safe }}</p>
  • capitalize:把变量值的首字母转成大写,其余字母转小写
  1. <p>{{ 'hello' | capitalize }}</p>
  • lower:把值转成小写
  1. <p>{{ 'HELLO' | lower }}</p>
  • upper:把值转成大写
  1. <p>{{ 'hello' | upper }}</p>
  • title:把值中的每个单词的首字母都转成大写
  1. <p>{{ 'hello' | title }}</p>
  • reverse:字符串反转
  1. <p>{{ 'olleh' | reverse }}</p>
  • format:格式化输出
  1. <p>{{ '%s is %d' | format('name',17) }}</p>
  • striptags:渲染之前把值中所有的HTML标签都删掉
  1. <p>{{ '<em>hello</em>' | striptags }}</p>
  • truncate: 字符串截断
  1. <p>{{ 'hello every one' | truncate(9)}}</p>

2.列表操作

  • first:取第一个元素
  1. <p>{{ [1,2,3,4,5,6] | first }}</p>
  • last:取最后一个元素
  1. <p>{{ [1,2,3,4,5,6] | last }}</p>
  • length:获取列表长度
  1. <p>{{ [1,2,3,4,5,6] | length }}</p>
  • sum:列表求和
  1. <p>{{ [1,2,3,4,5,6] | sum }}</p>
  • sort:列表排序
  1. <p>{{ [6,2,3,1,5,4] | sort }}</p>
  • 自定义过滤器

例如创建一个可以让列表反转的过滤器

1.方法一

  1. def do_listreverse(li):
  2. li.reverse()
  3. return li
  4. app.add_template_filter(do_listreverse,"listreverse") #listreverse是过滤器的名称

2.方法二(最常用这种)

  1. @app.template_filter("listreverse")
  2. def do_listreverse(li):
  3. li.reverse()
  4. return li

flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)的更多相关文章

  1. flask框架下的jinja2模板引擎(3)(模板继承与可以在模板使用的变量、方法)

    flask 框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html flask 框架下的jinja2模块引擎(2):http ...

  2. flask框架下的jinja2模板引擎(1)(模板渲染)

    #转载请留言联系 模板是什么? 在 flask 框架中,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.模板作用即是承担视图函 ...

  3. Tornado框架配置使用Jinja2模板引擎

    安装jinja2包 pip install jinja2 定义继承tornado.web.RequestHandler的子类BaseHandler.如果请求处理类继承这个类将会使用jinja模板引擎: ...

  4. Flask 框架下 Jinja2 模板引擎高层 API 类——Environment

    Environment 类版本: 本文所描述的 Environment 类对应于 Jinja2-2.7 版本.   Environment 类功能: Environment 是 Jinja2 中的一个 ...

  5. 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范

    一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...

  6. Flask从入门到精通之Jinja2模板引擎

    我们使用一个简单的例子切入到Jinja2模板引擎,形式最简单的Jinja2模板引擎就是一个包含响应文本的文件,实例如下: <h1>Hello World!</h1> 最简单的包 ...

  7. Flask框架 请求与响应 & 模板语法

    目录 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask 框架 与 Django 框架对比 简单使用Flask提供服务 Flask 中的 Response(响应) F ...

  8. 使用jinja2模板引擎生成html文件

    使用jinja2模板引擎生成html文件 jinja2是纯Python的模板引擎,是仿照Django模板的Python模板语言. 它速度快,被广泛使用,提供了可选的沙箱模板执行环境保证安全. 使用pi ...

  9. 【Python-Django】Jinja2模板引擎配置教程详解!!!!

    Jinjia2的官方文档:http://jinja.pocoo.org/docs/2.10/ 1. 安装Jinja2扩展包 $ pip install Jinja2 2. 配置Jinja2模板引擎 T ...

随机推荐

  1. javascript的JSON对象

    JSON包含用于解析JSON(javascript object notation)的方法,将值转换成JSON.JSON不可以被调用或者用作构造函数. JSON对象保存在大括号内,JSON数组保存在中 ...

  2. 【Maven学习】maven中依赖的配置详解

    根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或多个项目依赖.每个依赖可以包含的元素有: groupId,artifactId和version ...

  3. sysv-rc-conf介绍

    sysv-rc-conf简介 sysv-rc-conf是一个强大的服务管理程序,Ubuntu运行级别Linux 系统任何时候都运行在一个指定的运行级上,不同的运行级的程序和服务都不同,所要完成的工作和 ...

  4. javac的词法分析

      1.词法分析将Java源文件的字符流转变为对应的Token流.   JavacParser类规定了哪些词是符合Java语言规范规定的词,而具体读取和归类不同词法的操作由Scanner类来完成.   ...

  5. Comet事件分析

    简介[ Introduction ]  使用APR或者NIO API作为连接器的基础,Tomcat能够提供一些在阻塞IO之上的有效扩展,用于支持Servlet API. [ With usage of ...

  6. HDOJ 5019 Revenge of GCD

    Revenge of GCD In mathematics, the greatest common divisor (gcd), also known as the greatest common ...

  7. Go RabbitMQ(三)发布订阅模式

    RabbitMQ 在上一节中我们创建了工作队列,并且假设每一个任务都能够准确的到达对应的worker.在本节中我们将介绍如何将一个消息传递到多个消费者,这也就是所说的发布订阅模式 为了验证该模式我们使 ...

  8. leetcode简单题目两道(5)

    Problem Given an integer (signed bits), write a function to check whether it . Example: Given num = ...

  9. 大数据sql引擎

    Hive:把sql解析后用MapReduce跑 SparkSQL:把sql解析后用Spark跑,比hive快点 Phoenix:一个绕过了MapReduce运行在HBase上的SQL框架 Drill/ ...

  10. Thread中断线程的方法

    转载:https://www.cnblogs.com/l2rf/p/5566895.html 线程对象属于一次性消耗品,一般线程执行完run方法之后,线程就正常结束了,线程结束之后就报废了,不能再次s ...