前言

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的更多相关文章

  1. python测试开发django-36.一对一(OneToOneField)关系查询

    前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...

  2. python测试开发django-16.JsonResponse返回中文编码问题

    前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面 ...

  3. python测试开发django-15.查询结果转json(serializers)

    前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...

  4. 2019第一期《python测试开发》课程,10月13号开学

    2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...

  5. python测试开发django-rest-framework-63.基于函数的视图(@api_view())

    前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...

  6. Python测试开发-创建模态框及保存数据

    Python测试开发-创建模态框及保存数据 原创: fin  测试开发社区  前天 什么是模态框? 模态框是指的在覆盖在父窗体上的子窗体.可用来做交互,我们经常会看到模态框用来登录.确定等等,到底是怎 ...

  7. 《Python测试开发技术栈—巴哥职场进化记》—前言

    写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...

  8. python测试开发django-197.django-celery-beat 定时任务

    前言 django-celery-beat 可以支持定时任务,把定时任务写到数据库. 接着前面这篇写python测试开发django-196.python3.8+django2+celery5.2.7 ...

  9. python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)

    前言 xadmin的详情页面主要是用form_layout布局,学会了完全可以不用写html代码,也能做出很好看的页面. xadmin的html页面是用的Bootstrap3框架设计的,layout布 ...

随机推荐

  1. 【2019.7.26 NOIP模拟赛 T1】数字查找(figure)(数学)

    推式子 我们设\(n=kp+w\),则: \[(kp+w)a^{kp+w}\equiv b(mod\ p)\] 将系数中的\(kp+w\)向\(p\)取模,指数中的\(kp+w\)根据欧拉定理向\(p ...

  2. B1001 害死人不偿命的(3n+1)猜想 (15 分)

    一.参考代码: #include<iostream> using namespace std; int main(){ int n; int step = 0; cin >> ...

  3. Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  4. 阿里开源的缓存框架JetCache

    之前一直在用Spring Cache进行接口数据的缓存,主要是Spring Cache在对具体key缓存失效时间的设置不是很方法,还要自己去扩展,无意中发现了阿里的JetCache.大部分的需求都能满 ...

  5. 从URL重写中学习正则表达式

    起因: 最近因为业务上的需求,老板要求改写网站的域名.要求把所有的二级域名中的内容放到主域名下,增加资源集中程度,有利于搜索引擎的优化. so.网站中所有的URL定向都要重写,也就是我们所说的伪静态的 ...

  6. pytorch tutorial 2

    这里使用pytorch进行一个简单的二分类模型 导入所有我们需要的库 import torch import matplotlib.pyplot as plt import torch.nn.func ...

  7. 基于word2vec的文档向量模型的应用

    基于word2vec的文档向量模型的应用 word2vec的原理以及训练过程具体细节就不介绍了,推荐两篇文档:<word2vec parameter learning explained> ...

  8. 函数防抖节流的理解及在Vue中的应用

    防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算. 一.函数防抖 定义 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入 ...

  9. Gordon家族(二)

    本文是 Gordon家族(一) 的续集. 16. GoLearn 介绍:Gordon博士为Go开发者提供了一系列机器学习的库,开箱即用. 地址:https://github.com/sjwhitwor ...

  10. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...