ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-06-02 21:02:18  阅读:220  来源: 互联网

标签:templates last python value django html fancy 过滤器 first


前言

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>

页面显示

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

标签:templates,last,python,value,django,html,fancy,过滤器,first
来源: https://blog.51cto.com/u_15249893/2848152

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有