Python全系列 教程
3567个小节阅读:5931.3k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
过滤器是通过管道符号|
使用的,例如:{ name|length }}
将返回name的长度。
过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。
Jinja2中内置了许多过滤器
https://jinja.palletsprojects.com/en/3.0.x/templates/#filters
过滤器名 | 解释 | 举例 |
---|---|---|
abs(value) | 返回一个数值的绝对值 | -1|abs |
int(value) | 将值转换为int类型 | |
float(value) | 将值转换为float类型 | |
string(value) | 将变量转换成字符串 | |
default(value,default_value,boolean=false) | 如果当前变量没有值,则会使用参数中的值来代替。如果想使用python的形式判断是否为false,则可以传递boolean=true。也可以使用or来替换 | name|default('xiaotuo') |
safe(value) | 如果开启了全局转义,那么safe过滤器会将变量关掉转义 | content_html|safe |
escape(value)或e | 转义字符,会将<、>等符号转义成HTML中的符号 | content|escape或content|e。 |
first(value) | 返回一个序列的第一个元素 | names|first |
format(value,*arags,**kwargs) | 格式化字符串 | {{ "%s"-"%s"|format('Hello?',"Foo!") }} 输出 Hello?-Fool! |
last(value) | 返回一个序列的最后一个元素。示例:names|last | |
length(value) | 返回一个序列或者字典的长度。示例:names|length | |
join(value,d='+') | 将一个序列用d这个参数的值拼接成字符串 | |
lower(value) | 将字符串转换为小写 | |
upper(value) | 将字符串转换为小写 | |
replace(value,old,new) | 替换将old替换为new的字符串 | |
truncate(value,length=255,killwords=False) | 截取length长度的字符串 | |
striptags(value) | 删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格 | |
trim | 截取字符串前面和后面的空白字符 | |
wordcount(s) | 计算一个长字符串中单词的个数 |
defalut过滤器
xxxxxxxxxx
<body>
<h1>default过滤器</h1>
过滤前的昵称数据是:{{nick_name}}<br>
过滤后的昵称数据是:{{nick_name | default('用户1',boolean=true)}}<br>
过滤后的昵称数据是:{{nick_name or '用户2'}}<br>
</body>
转义字符
xxxxxxxxxx
<body>
<h1>转义字符过滤器</h1>
<!-- 模板中默认 做了转义字符的效果 -->
转义前的数据是:{{ info | safe }} <!-- 不转义:不将特殊字符转换成 <类似的数据 -->
{% autoescape true %} <!-- false代表不再转义特殊字符 / true 转义特殊字符 <-->
{{info }} <!-- 转义:将特殊字符转换成 <类似的数据 -->
{% endautoescape %}
</body>
其它过滤器
xxxxxxxxxx
<body>
<h1>其它过滤器</h1>
绝对值:{{ -6 | abs }}<br>
小数: {{ 6 | float }}<br>
字符串:{{ 6 | string }}<br>
格式化:{{'%s--%s' | format('我','你')}}<br>
长度:{{'我是九,你是三,除了你,还是你' |length}}<br>
最后一个:{{'我是九,你是三,除了你,还是你' |last}}<br>
第一个:{{'我是九,你是三,除了你,还是你' |first}}<br>
统计次数: {{'我是九,你是三,除了你,还是你' | wordcount }}<br>
替换:{{'===我是九,你是三,除了你,还是你====' |replace('我是九,你是三,除了你,还是你','拿着,这个无限额度的黑卡,随便刷')}}
</body>
小提示
jinja2模板 默认全局开启了自动转义功能
safe
过滤器:可以关闭一个字符串的自动转义
escape
过滤器:对某一个字符串进行转义
autoescape
标签,可以对他包含的代码块关闭或开启自动转义
{% autoescape true/false %}
代码块{% endautoescape %}
实时学习反馈
1. 在Flask中,以下哪个可以显示出“默认值”?
A {{ None |default('默认值') }}
B {{ [] | default('默认值',boolean=true) }}
C {{ "[]" | default('默认值',boolean=true) }}
D {{ "test" | default('默认值') }}
2. 在Flask中,对转义字符语法错误的是哪个?
A {{ value | escape }}
B {{ value | sale }}
C {% autospace off %} value {% endautospace %}
D {{ value | autospace }}
答案
1=>B 2=>D