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>
页面显示

除了上面的这些过滤器,还有很多内置过滤器,如果内置过滤器不能满足你的需求,也可以自己写一个过滤器!
python测试开发django-69.templates模板过滤器filter的更多相关文章
- python测试开发django-36.一对一(OneToOneField)关系查询
		
前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...
 - python测试开发django-16.JsonResponse返回中文编码问题
		
前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面 ...
 - python测试开发django-15.查询结果转json(serializers)
		
前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...
 - 2019第一期《python测试开发》课程,10月13号开学
		
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
 - python测试开发django-rest-framework-63.基于函数的视图(@api_view())
		
前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...
 - Python测试开发-创建模态框及保存数据
		
Python测试开发-创建模态框及保存数据 原创: fin 测试开发社区 前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎 ...
 - 《Python测试开发技术栈—巴哥职场进化记》—前言
		
写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...
 - python测试开发django-197.django-celery-beat 定时任务
		
前言 django-celery-beat 可以支持定时任务,把定时任务写到数据库. 接着前面这篇写python测试开发django-196.python3.8+django2+celery5.2.7 ...
 - python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)
		
前言 xadmin的详情页面主要是用form_layout布局,学会了完全可以不用写html代码,也能做出很好看的页面. xadmin的html页面是用的Bootstrap3框架设计的,layout布 ...
 
随机推荐
- 洛谷 题解 P4198 【楼房重建】
			
首先明确问题,对于每栋楼房的斜率K=H/X,问题就是问有多少个楼房的K比前面所有楼房的K都要大. 这题树套树当然可以,但是挺麻烦的,本渣觉得最简单就是分块…… 将N个楼房分成T块,不断维护每个块内楼房 ...
 - [LeetCode] 314. Binary Tree Vertical Order Traversal 二叉树的竖直遍历
			
Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...
 - [LeetCode] 241. Different Ways to Add Parentheses 添加括号的不同方式
			
Given a string of numbers and operators, return all possible results from computing all the differen ...
 - monkey-api-encrypt 1.1.2版本发布啦
			
时隔10多天,monkey-api-encrypt发布了第二个版本,还是要感谢一些正在使用的朋友们,提出了一些问题. GitHub主页:https://github.com/yinjihuan/mon ...
 - docker for windows添加卷映射
			
docker settings->share drivers 设置共享目录 启动docker时-v 指定目录 ··· docker run -v /d/temp:/app -it --rm co ...
 - Python连载27-log日志
			
一.log 1.推荐网站:https://www.cnblogs.com/yyds/p/6901864.html 该网站为日志处理logging模块简介 2.logging模块提供模块级别的函数记录日 ...
 - torch_07_卷积神经网络案例分析
			
1. LeNet(1998) """ note: LeNet: 输入体:32*32*1 卷积核:5*5 步长:1 填充:无 池化:2*2 代码旁边的注释:卷积或者池化后的 ...
 - Appium+python自动化(一)- 环境搭建—上(超详解)
			
简介 今天是高考各地由于降水,特别糟糕,各位考生高考加油,全国人民端午节快乐.最近整理了一下自动化的东西,先前整理的python接口自动化已经接近尾声.即将要开启新的征程和篇章(Appium& ...
 - Redis 分析部分功能所解决的问题
			
前言:说到缓存,大家都会想到redis,而redis中又有各种眼花缭乱的功能,今天就来看看这些功能能解决的问题. Redis官方简介 Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存 ...
 - Ipfs基础入门
			
Ipfs介绍 Ipfs(Inter-Planetary File System!),中文译为星际网络文件系统,是基于默克尔有向无环图(merkle dag)的全球性p2p文件系统. 是一个面向全球的, ...