python Flask框架学习——jinja2模板过滤器

jinja2模板过滤器介绍

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

jinja2过滤器

过滤器说明
abs返回一个数的绝对值
default设置默认值
escape或e转义字符,将<、>等符号转义成HTML中可展示的符号
first返回一个序列的第一个元素
format格式化字符串
last返回一个序列的最后一个元素
length返回一个序列或者字典的长度
join拼接字符串
safe如果开启全局转义,则safe过滤器将变量关掉转义
int将变量类型转为int类型
float将变量类型转为float类型
lower将字符串转换为小写
upper将字符串转换为大写
replace替换字符串
truncate截取一定长度的字符串,长度自己设置
striptags删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格
trim截取字符串前面和后面的空白字符
string将变量转换成字符串
wordcount(s)计算一个长字符串中单词的个数

过滤器使用

py文件

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/")
def test1():
    content = {
        'name': 'cmy',
        'age': -18,
        'url': '<a href="#">空链接</a>',
        'cont': 'abcdefghijkl',
        'list1': [1, 2, 3, 4, 5],
        'str1': "   haha   haha   haha"
    }
    return render_template('func.html', **content)


if __name__ == '__main__':
    app.run(debug=True)

html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>abs过滤器 -> {{ age | abs }}</p>
    <p>default过滤器 -> {{ x | default('默认') }}</p>
    <p>escape过滤器 -> {{ url | escape }}</p>
    <p>list1 -> {{ list1 }}</p>
    <p>first过滤器 -> {{ list1 | first }} </p>
    <p>last过滤器 -> {{ list1 | last }}</p>
    <p>format过滤器 -> {{ "'%s'-'%s'" | format(name, name) }}</p>
    <p>length过滤器 -> name -> {{name}} 长度-> {{ name | length }}</p>
    <p>join过滤器 -> name -> {{name}} 拼接字符串 -> {{ name | join("aa") }}</p>
    <p>safe过滤器 -> {{ url | safe }}</p>
    <p>int过滤器 -> 1.2 -> {{ 1.2 | int }}</p>
    <p>float过滤器 -> 1 -> {{ 1 | float }}</p>
    <p>lower过滤器 -> CMY -> {{ 'CMY' | lower }}</p>
    <p>upper过滤器 -> {{ name }} -> {{ name | upper }}</p>
    <p>replace过滤器 -> {{ name }} -> {{ name | replace(name, 'cmy hello') }}</p>
    <p>truncate过滤器 -> {{ cont }} -> {{ cont | truncate(6) }}</p>
    <p>striptags过滤器 -> {{ "<p>哈哈</p>" }} -> {{ "<p>哈哈</p>" | striptags }}</p>
    <p>wordcount过滤器 -> {{ str1 }} -> {{ str1 | wordcount }}</p>
</body>
</html>

结果
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值