jinja2的模板过滤器引用及自定义

一、jinja2模板过滤器

  • 过滤器是通过管道符号(|)进行使用的,例如:{ { name|length }},将返回name的长度。过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。Jinja2中内置了许多过滤器,在这里可以看到所有的过滤器

1、 abs(value):返回一个数值的绝对值。

2、default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。

name|default(‘juran’)——如果name不存在,则会使用juran来替代。boolean=False默认是在只有这个变量为undefined的时候才会使用default中的值,如果想使用python的形式判断是否为false,则可以传递boolean=true。也可以使用or来替换。

3、 escape(value)或e:转义字符,会将<、>等符号转义成HTML中的符号。

示例:content|escape或content|e。

4、 first(value):返回一个序列的第一个元素。

示例: names|first。

5、 format(value,*arags,**kwargs):格式化字符串。

例如以下代码: { { “%s” - “%s”|format(‘Hello?’,“Foo!”) }}将输出:Helloo? - Foo!

6、 last(value):返回一个序列的最后一个元素。

示例:names|last。

7、 length(value):返回一个序列或者字典的长度。

示例:names|length。

8、join(value,d=u’’):将一个序列用d这个参数的值拼接成字符串。

9、 safe(value):如果开启了全局转义,那么safe过滤器会将变量关掉转义。

示例:content_html|safe。

10、 int(value):将值转换为int类型。

11、 float(value):将值转换为float类型。

12、lower(value):将字符串转换为小写。

13、 upper(value):将字符串转换为小写。

14、replace(value,old,new): 替换将old替换为new的字符串。

15、 truncate(value,length=255,killwords=False):截取length长度的字符串。

16、striptags(value):删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格。

17、 trim:截取字符串前面和后面的空白字符。

18、string(value):将变量转换成字符串。

19、wordcount(s):计算一个长字符串中单词的个数。

二、自定义过滤器

1、过滤器定义:

@app.template_filter(“过滤器名称”)
def 过滤器名称(参数)
实现的功能

2、过滤器的引用:

  • 与系统过滤器引用方法一样,
    • { {变量名|过滤器名称}}
    • { {变量名|过滤器名称(参数)}}

三、实例

1、代码:

from flask import Flask,render_template
from datetime import datetime

app=Flask(__name__)

@app.route('/')
def index():
    context = {
   
        'username': 'hello 老萝卜',
        'age': -18,
        'home': '湖北',
        'recommend': 'chinapost'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值