• python测试开发django-69.templates模板过滤器filter


    前言

    templates 模板里面过滤器 filter 的作用是对变量的出来,比如小写转大写,替换一些特殊字符,对列表取值,排序等操作。
    内置的过滤器有很多,本篇拿几个常用的过滤器做案例讲解下相关的功能。

    default

    default 的功能是当 value 的值为为布尔值 False 的时候,输出过滤器自定义的值,语法

    {{ value | default:"nothing" }}
    

    视图函数 context 内容

    # 上海悠悠,QQ交流群:750815713
    
    def personalView(request):
        context = {
            "hello": "hello world!",
            "name": "上海-悠悠",
            "html": "<h2>这是一段html标签</h2>",
            "n_name": "",
            "age": 20,
            "fancy": ["python", "django", "pytest"],
            "blog": {
                "url": "https://www.cnblogs.com/yoyoketang/",
                "img": "https://pic.cnblogs.com/avatar/1070438/20161126151035.png"
            }
        }
        return render(request, "personal.html", context=context)
    

    personal.html 模板的部分内容

    <div>
        <p class="text_gray"><span>姓名: </span>{{ n_name | default:"yoyo" }}</p>
    </div>
    

    n_name 的值为空,所以在页面上回显示默认值 yoyo

    add

    add 的功能是将 value 的值加一个值,比如把age的值加8

    {{ value | add:"8" }}
    

    personal.html 模板的部分内容

    <div>
        <p class="text_gray"><span>年龄:</span>{{ age | add:"8" }}</p>
    </div>
    

    first、last、join

    first 是输出列表中第一个,last 是输出列表中最后一个值,join是连接列表的值

    {{ value | first }}
    {{ value | last }}
    {{ value | join:"arg" }}
    

    personal.html 模板的部分内容

        <p class="text_gray"><span>感兴趣的技术first:</span>{{ fancy | first }}</p>
        <p class="text_gray"><span>感兴趣的技术last:</span>{{ fancy | last }}</p>  
        <p class="text_gray"><span>感兴趣的技术join:</span>{{ fancy | join:" | " }}</p>
    

    safe

    safe 关闭html转义,告诉Django,这段代码是安全的,不用转义

    {{ value | safe }}
    

    personal.html 模板的部分内容

        <p class="text_gray"><span>html标签:</span>{{ html }}</p>
        <p class="text_gray"><span>html标签:</span>{{ html | safe}}</p>
    

    显示效果

    personal.html 模板的部分内容

    # 上海悠悠,QQ交流群:750815713
    <div>
        <p class="text_gray"><span>姓名: </span>{{ n_name | default:"yoyo" }}</p>
        <p class="text_gray"><span>年龄:</span>{{ age | add:"8" }}</p>
        <p class="text_gray"><span>感兴趣的技术first:</span>{{ fancy | first }}</p>
        <p class="text_gray"><span>感兴趣的技术last:</span>{{ fancy | last }}</p>
        <p class="text_gray"><span>感兴趣的技术join:</span>{{ fancy | join:" | " }}</p>
        <p class="text_gray"><span>html标签:</span>{{ html }}</p>
        <p class="text_gray"><span>html标签:</span>{{ html | safe}}</p>
        </div>
    

    页面显示

    除了上面的这些过滤器,还有很多内置过滤器,如果内置过滤器不能满足你的需求,也可以自己写一个过滤器!

  • 相关阅读:
    WPF通过不透明蒙板切割显示子控件
    WPF图片,DataGrid等实现圆角
    今天是2015年1月5日
    控制反转&依赖注入
    如何提高sql查询性能到达优化程序的目的
    handle句柄
    winform加快窗体加载速度
    winform窗体自适应大小
    快速整理代码(c#)
    IC卡、ID卡、M1卡、射频卡的区别是什么(射频卡是种通信技术)
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11809476.html
Copyright © 2020-2023  润新知