Django | 模板语法之常用过滤器

模板语法之常用过滤器

# 过滤器就类似于模板语法内置的内置方法

# 基本语法:
{{数据|过滤器:参数}}  
# 将数据交给过滤器去做处理,数据相当于过滤器的第一个参数,:冒号后编写的相当于第二个参数。
1.统计长度   :{{ x|length }}  		         # 统计长度

2.默认值     :{{ x|default:'默认值' }}           # x有值(True)就用前面x,x没有值就用:后面的'默认值' 
  
3.文件大小   :{{ x|filesizeformat }}   	         # 转换为有文件大小单位(kb/mb/gb)的数据

4.日期格式化 :{{ x|date:'Y-m-d H:i:s'}}          # 转换为年月日时分秒(utc时间)

5.切片操作   :{{ x|silce:'0:4:2' }}              # 切取x从索引0到索引4步长为2

6.切取字符   :{{ x|truncatechars:9 }}            # 切取到一个字符集的第9各位置并添加三个点(三个点也占位)

7.切取单词   :{{ x|truncatewords:9 }}            # 只会按照空格切取9个单词并添加三个点(三个点不占位)

8.移除指定字符   :{{ x|cut:' ' }}                # 取出x中的空格

9.拼接操作	:{{ x|join:'*' }}	        # 使字符以*进行拼接

10.加法运算      : {{ x|add:10 }}		# 给数字x加10
同样支持字符串拼接    :  {{ x|add:n }} 	        # x和n两个字符串拼接  (如过不是两个相同类型的相加 就为空'')
 
11.取消转义          :{{ x|safe }}		# 按照html格式转换

# 补充:后端转义
from django.utils.safestring import mark_safe
xx = make_safe('<h1>我是h1标签</h1>')

'''
以后我们在写全栈项目的时候,前端代码不一定非要在签到页面编写
完全可以现在后端写好,然后传递给前端页面
'''

习题:

# 后端:
def index(request):
    # 模板语法可以传递的后端python数据类型

    i = 123
    file_size = 21381293
    s = '我是字符串'
    n = '你好呀'
    b = False
    l = ['喜喜','哈哈','呵呵','嘿嘿']
    word = 'hey boy 你好 帅哥 what is your name'
    title = '俄乌冲突新进展|俄军进入乌克兰多州 乌总统宣布与俄罗斯断交'
    h1 = '<h1>我是标签h1</h1>'
    h2 = '<h2>我是标签h2</h2>'
    from django.utils.safestring import mark_safe
    xx = mark_safe(h1)
    import datetime
    current_time = datetime.datetime.now()
    render(request,'index.html',locals())
# 前端:
<p>统计长度:{{ s|length }}</p>

<p>默认值:{{ b|default:'我是默认值' }}</p>

<p>文件大小:{{ file_size|filesizeformat }}</p>

<p>日期格式化:{{ current_time|date:'Y-m-d H:i:s' }}</p>

<p>切片操作:{{ l|slice:'0:4:2' }}</p>

<p>切取字符:{{ title|truncatechars:9 }}</p>

<p>切取单词:{{ word|truncatewords:4 }}</p>

<p>移除指定字符:{{ word|cut:' ' }}</p>

<p>拼接操作:{{ l|join:'$' }}</p>

<p>加法运算:{{ i|add:10 }}</p>

<p>字符串拼接:{{ s|add:n }}</p>

<p>取消转义:{{ h1|safe }}</p>

<p>{{ h1 }}</p>

# 补充:
后端取消转义:
from django.utils.safestring import mark_safe
    h1 = mark_safe('<h1>h1标签</h1>')
    <p>{{ h1 }}</p>
	

posted @ 2022-03-02 15:19  JasonBorn  阅读(82)  评论(0编辑  收藏  举报