专栏首页从零开始学自动化测试python测试开发django-69.templates模板过滤器filter

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

前言

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

default

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

{{ value | default:"nothing" }}

视图函数 context 内容

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 模板的部分内容

<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>

页面显示

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

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:上海悠悠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python测试开发django-67.templates模板变量取值

    django 的模板里面变量取值是通过句点语法来取值,就是一个点(.)符号。取值的对象也可以是字符串,int类型,list列表,字典键值对,也可以是一个类的实例...

    上海-悠悠
  • python测试开发django-20.添加创建时间DateTimeField

    我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容...

    上海-悠悠
  • python爬虫beautifulsoup4系列2

    前言 本篇详细介绍beautifulsoup4的功能,从最基础的开始讲起,让小伙伴们都能入门 一、读取HTML页面 1.先写一个简单的html页面,把以下...

    上海-悠悠
  • WebRTC 媒体服务器中使用单端口

    WebRTC在进行互通的时候需要开放很多端口, 一个音/视频通道就要开启多个通道, 如果是多人音视频通话需要开通的端口更多. 对端口资源照成了很大的浪费, 一些...

    刘连响
  • How to remove OSD from Ceph cluster

    ###How to remove OSD from Ceph cluster It is not well described in the docs.

    domain0
  • 基于Spring EL实现一个简单的电商打折优惠规则引擎

    在日常工作中,能遇到使用规则引擎的地方非常的多。比如,电商中的打折优惠场景,复杂多变。再比如,考勤分析时每个部门都有不同的分析策略。还有薪资计算,公司中不同职级...

    业余草
  • 专科生阿里大数据一面面经「已过」「附详细答案」

    这篇文章是我学习群里一个小兄弟的面试总结,他是专科大三,很早之前找我指导了学习路线,学习很认真努力,目前他已经过了阿里一面。

    Java技术江湖
  • 使用netstat、lsof查看端口占用情况

    netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等,常用方式如下:

    拓荒者
  • 硬核推荐!Mac电脑必备软件/工具!

    昨天晚上下班之后,突然想整理一下自己离不开的哪些 Mac 软件,想着以后有个记录也方便自己日后查阅。之前我也整理过,不过都不是很全面,就是碰到一两个觉得还不错的...

    Guide哥
  • ArcGIS Desktop 10.5 详细安装步骤

    已部署在ArcGIS Server上的地图服务如下。可以在ArcMap上创建新的地图,并把该地图作为服务发布到ArcGIS Server上。

    魏晓蕾

扫码关注云+社区

领取腾讯云代金券