一周学会Flask3 Python Web开发-Jinja2模板过滤器使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 ' | '(管道符号)隔开,需要参数的过滤器可以像函数一样使用括号传递。

Jinja2常用过滤器如下表格:

过滤器 说明
abs 设置数值的绝对值
default 设置默认值
escape 转义字符,转成HTML的语法
first 获取上下文的第一个元素
last 获取上下文的最后一个元素
length 获取上下文的长度
join 功能与Python的join语法一致
safe 将上下文转义处理
int 将上下文转换为int类型
float 将上下文转换为float类型
lower 将字符串转换为小写
upper 将字符串转换为大写
replace 字符串的替换
truncate 字符串的截断
striptags 删除字符串中所有的HTML标签
trim 截取字符串前面和后面的空白字符
string 将上下文转换成字符串
wordcount 计算长字符串的单词个数

我们来看一个示例,视图函数里定义一个titleA

复制代码
titleA = 'student'

student.html

复制代码
<h3>过滤器</h3>
first: {{ titleA | first }}<br>
last:{{ titleA | last }}<br>
length:{{ titleA | length }}<br>
upper:{{ titleA | upper }}

运行结果:

有时候,jinjia2默认提供的过滤器不够我们用,我们还可以自定义过滤器。比如我们开发过程中,经常需要格式化日期。我们可以开发一个日期过滤器。

先自定义处理函数,然后通过add_template_filter添加自定义过滤器

复制代码
# 格式化下日期
def date_format(value, format="%Y年%m月%d日"):
    return value.strftime(format)


# 添加自定义过滤器
app.add_template_filter(date_format, "dateformat")

视图函数里面添加一个日期变量

复制代码
timeA = datetime.now()

student.html

复制代码
<h3>自定义过滤器</h3>
{{ timeA | dateformat }}

运行结果:

相关推荐
特立独行的猫A4 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持4 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang5 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰6 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc7 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络10 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记13 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事13 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力15 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力16 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python