• Python中的过滤器add、cut、date、join、length、lower、upper、random、safe、slice、truncatechars、truncatechars_html


    在DTL模板中,不支持函数的调用形式“()”,因此不能给函数传递参数,这将有很大的局限性,而过滤器其实就是一个函数,可以对需要处理的参数进行处理,并且最多可以接收两个参数。

    1.add过滤器

    将传进来的参数添加到原来的值上面,这个过滤器会尝试将“值”和“参数”转换成整型,然后进行相加。如果转换成整型的过程中

    views.py中代码:
    from django.shortcuts import render
    
    
    def greet(word):
        return "Hello:  %s" % word
    
    
    def index(request):
        context = {
            "greet":greet
        }
        return render(request,'index.html',context=context)
    
    
    def add(request):
        context = {
            'key1':['1','2','3'],
            'key2':['4','5','6']
        }
        return render(request,'add.html',context=context)
    
    add.html中代码:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {# 两个数字,手下转换为int型,之后进行数学上的相加,#}
    {#如果而这种任何一方不能够转换为int型,就会将二者进行字符串的拼接 #}
        {{ "2"|add:"3" }}
    {#  在DTL模板中不能够定义列表,所以在views.py视图函数中进行定义列表,#}
    {#之后使用add过滤器就可以将两个列表进行拼接成一个列表  #}
        {{ key1|add:key2 }}
    </body>
    </html>
    

    2.cut过滤器

    移除值中所有指定的字符串,类似于python中的replace{args,' '}

    views.py中代码如下:
    from django.shortcuts import render
    
    
    def cut(request):
        context ={
            'info':'I am a girl !'
        }
        return render(request,'cut.html',context=context)
    
    cut.html中代码如下:
    <body>
        {{ info|cut:'a' }}
    </body>
    

    3.date过滤器

    date过滤器中各种字符代表的含义:
    格式字符串 描述 示例
    Y 四位数字的年份 2018
    m 两位数字的月份 01-12
    n 月份,1-9前面没有0前缀 1-12
    d 两位数字的天 01-31
    j 天,但是1-9前面没有0前缀 1-31
    g 小时,12小时格式的,1-9前面没有0前缀 1-12
    h 小时,12小时格式的,1-9前面有0前缀 01-12
    G 小时,24小时格式的,1-9前面没有0前缀 1-23 H
    i 分钟,1-9前面有0前缀 00-59
    s 秒,1-9前面有0前缀 00-59
    示例代码如下:
    views.py中代码如下:
    from django.shortcuts import render
    from datetime import datetime
    
    
    def date(request):
        context = {
            'now': datetime.now()
        }
        return render(request,'date.html',context=context)
    
    date.html中代码如下:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        {{ now|date:'Y-n-d G:i:s' }}
    </body>
    </html>
    
    在浏览器中显示:

    在这里插入图片描述

    4.join过滤器

    类似于中的join,将列表/元组/字符串用指的字符进行拼接,可以在join过滤器之后指定分隔符,示例代码如下:

    views.py中代码如下:
    from django.shortcuts import render
    
    
    def join(request):
        context = {
            'value':['python','django','flask']
        }
        return render(request,'join.html',context=context)
    
    join.html中代码如下所示:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        {{ value|join:"+" }}
    </body>
    </html>
    

    浏览器中查看运行结果如下所示:
    在这里插入图片描述

    5.length过滤器

    获取一个列表/元组/字符串/字典(python中所有可以使用len()函数的类型)的长度,示例代码如下:

    join.html中代码如下:
        <p>{{ value|join:"+" }}</p>
        <p>{{ value|length }}</p>
    

    在浏览器中查看获取的列表的长度:
    在这里插入图片描述

    6.lower过滤器

    将值中所有的字符串全部转换成小写,示例代码如下:

    {#  将value值中所有的字符全部转换成小写  #}
        {{ value|lower }}
    

    7.upper过滤器

    将值中所有的字符串全部转换为大写,示例代码如下:

    {#  将value值中所有的字符全部转换成大写  #}
        {{ value|upper }}
    

    浏览器中查看运行结果:
    在这里插入图片描述

    8.random过滤器

    在被给的列表/字符串/元组中随机的选择一个值,示例代码如下:

    views.py中代码如下:
    def random(request):
        context = {
            'value':[1,2,3,4]
        }
        return render(request,'random.html',context=context)
    
    random.html中代码如下:
    {#  每一次刷新都会从value中选出一个随机值  #}
        {{ value|random }}
    

    9.safe过滤器

    标记一个字符串是安全的,也会关掉这个字符串的自动转义,示例代码如下:

    from django.shortcuts import render
    
    def random(request):
        context = {
            'value':[1,2,3,4],
            'value1':"<a href='https://wwww.baidu.com'>百度</a>"
        }
        return render(request,'random.html',context=context)
    
    {#  如果value是一个不包含任何特殊字符串,比如<a>这种,那么以上代码就会把字符串正常的输入, #}
    {#  value值是包含html的代码,那么就可以使用safe过滤器将html代码渲染到浏览器中  #}
        <p>{{ value|safe }}</p>
        <p>{{ value1|safe }}</p>
        
        
    {#  不关闭自动转义,进行查看  #}
        <p>{{ value1 }}</p>
    

    在浏览器中查看safe过滤器运行结果:
    在这里插入图片描述

    10.slice过滤器

    类似于Python中的切片操作,但是在模板当中实现一个切片操作的话,就可以通过使用slice过滤器,示例代码如下:

    views.py中代码如下:
    def slice(request):
        context = {
            'value':['1','5','4','3']
        }
        return render(request,'slice.html',context=context)
    
    slice.html中代码如下:
    <body>
    <!--将会把值value从2处开始进行切片-->
        {{ value|slice:"2:" }}
    </body>
    

    11.stringtags过滤器

    删除字符串中所有的html标签,如果value是Hello World!,就会输出Hello World!示例代码如下:

    {{ value|striptags }}
    

    12.truncatechars过滤器

    如果给定的字符串长度超过了过滤器指定的长度,那么就会进行切割,并且拼接三个点作为省略号,示例代码如下:

    {{ value|truncatechars:5 }}
    

    13.truncatechars_html过滤器

    类似于truncatechars,只不过是不会切割html标签,示例代码如下:

    {{ value|truncatechars_html:5 }}
    <!--例如-->
    value:<p>欢迎来到斯坦福大学</p>
    <!--如果使用truncatechars_html进行切割的话,就会返回<p>北京...</p>-->
    <!--但是如果使用truncatechars进行切割的话,就会返回<p...-->
    
    始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。
  • 相关阅读:
    WP8日历(含农历)APP
    NHibernate3剖析:Mapping篇之集合映射基础(2):Bag映射
    初探springmvc
    树的子结构
    Java内存分析
    java8_api_misc
    iOS开发多线程篇 09 —NSOperation简单介绍
    CALayer1-简介
    NSCharacterSet
    iOS 音频开发
  • 原文地址:https://www.cnblogs.com/guyan-2020/p/12201524.html
Copyright © 2020-2023  润新知