FastAPI系列(14):Jinja2模板语法之过滤器
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/19503695
过滤器介绍及用法
变量可以通过“过滤器”进⾏修改,过滤器可以理解为是jinja2⾥⾯的内置函数和字符串处理函数。
常⽤的过滤器有:
| 过滤器名称 | 说明 |
|---|---|
| capitialize | 把值的⾸字母转换成⼤写,其他⼦母转换为⼩写 |
| lower | 把值转换成⼩写形式 |
| title | 把值中每个单词的⾸字母都转换成⼤写 |
| trim | 把值的⾸尾空格去掉 |
| striptags | 渲染之前把值中所有的HTML标签都删掉 |
| join | 拼接多个值为字符串 |
| round | 默认对数字进⾏四舍五⼊,也可以⽤参数进⾏控制 |
| safe | 渲染时值不转义 |
过滤器使用方法:只需要在变量后⾯使⽤管道(|)分割,多个过滤器可以链式调⽤,前⼀个过滤器的输出会作为后⼀个过滤器的输⼊。
示例

index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--首字母大写 -->
<p>user :{{ 'qzcsbj'|capitalize}}</p>
<!--把值中每个单词的⾸字母都转换成⼤写-->
<p>{{ 'hello qzcsbj'|title}}</p>
<!--替换-->
<p>{{ 'hello qzcsbj'|title|replace('Qzcsbj','全栈测试笔记')}}</p>
<!--大写-->
<p>user :{{ user|upper}}</p>
<!--展示3位小数-->
<p>{{num}}展示3位小数 :{{ num|round(3) }}</p>
<p>1.1236展示3位小数 :{{ 1.1236|round(3) }}</p>
<!--展示整数部分-->
<p> {{num}}的整数部分是:{{ num|round(3)|int }}</p>
<p>1.9999的整数部分是:{{ 1.9999|round(3)|int }}</p>
</body>
</html>
test_jinja2.py
import uvicorn
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates") # 实例化Jinja2对象,并将文件夹路径设置为以templates命令的文件夹
@app.get("/index")
def index(request: Request): # TemplateResponse要求上下文包含Request类型的对象,这里需要传入
name = "qzcsbj"
num = 1.8999
return templates.TemplateResponse(
"index.html", # 模板文件
{
"user": name,
"num": num,
"request": request, # TemplateResponse要求上下文(context)中必须包含 "request" 键,value是Request类型对象
}, # context上下文对象,一个字典
)
if __name__ == '__main__':
uvicorn.run("test_jinja2:app", port=8001, reload=True)
运行结果

__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号