一周学会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 }}

运行结果:

相关推荐
jay神1 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫9 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能9 小时前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
m0_380743879 小时前
从零调用 Claude 教程
开发语言·python·node.js
min(a,b)10 小时前
学习第17天:Agent Memory 与 MCP 协议
python·学习
CodeBlog-star11 小时前
LLM安全实战:提示词注入与越狱攻击防御指南
python·agent·提示词攻击·越狱攻击
小柯南敲键盘11 小时前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
比高创意品牌策划设计12 小时前
零售卖场设计软件用CAD还是SketchUp还是酷家乐
python
迷迭香yy14 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python