前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python测试开发django-69.templates模板过滤器filter

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

作者头像
上海-悠悠
发布2019-11-14 16:18:16
3730
发布2019-11-14 16:18:16
举报
文章被收录于专栏:从零开始学自动化测试

前言

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

default

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

代码语言:javascript
复制
{{ value | default:"nothing" }}

视图函数 context 内容

代码语言:javascript
复制
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 模板的部分内容

代码语言:javascript
复制
<div>
    <p class="text_gray"><span>姓名: </span>{{ n_name | default:"yoyo" }}</p>
</div>

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

add

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

代码语言:javascript
复制
{{ value | add:"8" }}

personal.html 模板的部分内容

代码语言:javascript
复制
<div>
    <p class="text_gray"><span>年龄:</span>{{ age | add:"8" }}</p>
</div>

first、last、join

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

代码语言:javascript
复制
{{ value | first }}
{{ value | last }}
{{ value | join:"arg" }}

personal.html 模板的部分内容

代码语言:javascript
复制
    <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,这段代码是安全的,不用转义

代码语言:javascript
复制
{{ value | safe }}

personal.html 模板的部分内容

代码语言:javascript
复制
    <p class="text_gray"><span>html标签:</span>{{ html }}</p>
    <p class="text_gray"><span>html标签:</span>{{ html | safe}}</p>

显示效果

personal.html 模板的部分内容

代码语言:javascript
复制
<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>

页面显示

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • default
  • add
  • first、last、join
  • safe
  • 显示效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档