Day21-自定义simple_tag/filter
一. 在模板里面对用户发过来的数据进行二次加工。想办法把Python的函数放到模板语言里面使用。
有2种方法:filter与simple_tag

二. 实例
{{name|lower}}
truncatewords这个是函数,name和3都会传给它。意思是取前3个字符串。


三. 实例
{{ name|truncatewords:"3" }} name和3都会传给truncatewords函数。
那么{{ name|truncatewords:"3" }} filter 类型 与我们自定义的{% test1 2 5 %} simple_tag有什么区别呢???
A-使用的装饰器不同,1个是filter 类型,1个是simple_tag类型。
B-filter 类型,只能传2个参数,而且不能有空格
C-调用时的格式不同,一个是{{ }},一个是{% %}


非要传2个参数的话,得自己构造了。{{"maliya"|test2:"LS,YH"}},传过去以后,再通过字符串分割就行了。
总体看来,simple_tag 用起来比较灵活,filter 类型比较死板(但是它能用在if---else---判断里面),

四.在模板里面写上自定义函数,这个自定义函数也可以传参数。
Templates
-母版...html:extends,include
-自定义函数:
imple_tag
1.在app01下创建templatetags目录(被引用的模板必须放到特定的目录下面)
2.任意py文件
3.创建template对象register
4. 定义函数,并且加上装饰器。
@register.simple_tag
def test(a1,a2)
return '123abc'
5.settings中注册APP
6.在引用的.html的顶部写上 {% load xxoo %}
7.使用的时候 {% 函数名 arg1 arg2 %}
第1步:

2.第2步

3. 第三步:

4. 运行效果:

五: 小结- filter与simple_tag的比较
自定义函数: simple_tag
1.在app01下创建templatetags目录(被引用的模板必须放到特定的目录下面),位置和名字是不能改的。
2.任意py文件
3.创建template对象register
4.定义函数,并且加上装饰器:
@register.simple_tag
def test(a1,a2,a3,a4)
return '123abc'
5.settings中注册APP
6.在.html顶部写上 {% load xxoo %}
7.使用的时候用 {% 函数名 arg1 arg2 %}
缺点:不能作为if条件,
优点:可以传任意多个参数
filter
1.在app01下创建templatetags目录
2.任意py文件
3.创建template对象register
4. @register.simple_tag def test(a1,a2) //最多只能有2个参数 return '123abc'
5.settings中注册APP
6.在顶部{% load xxoo %} 7.使用的时候{{参数1|函数名:"参数2 参数3"}} {{参数1|函数名:数字}}
缺点:最能只能传2个参数,不能加空格
优点:能作为if条件

Day21-自定义simple_tag/filter的更多相关文章
- Django学习手册 - 自定义simple_tag / filter
相关: Django的模板引擎提供一般性的功能函数,通过前端可以实现多数的代码逻辑功能,但它仅支持大多数常见情况下的函数功能,例如if判断,ifequal对比返回值等,复杂一些的函数功能并不支持,例如 ...
- django自定义simple_tag和filter
1.自定义simple_tag: 1).在app目录名下创建templatetags目录,并新建__init__.py文件. 2).在templatetags目录下创建任意名字的py文件,例如rema ...
- 18)django-模板的过滤器和tag,自定义simple_tag和filter
模板过滤器是在变量被显示前修改它的值的一个简单方法. 过滤器使用管道字符 . 模板标签(template tag) .标签(tag)定义比较明确,即: 仅通知模板系统完成某些工作的标签. 一:dja ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”
摘要: 大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”.使用现有的Filter性能差劲,网上也没有现成的自定义Fi ...
- MVC之 自定义过滤器(Filter)
MVC之 自定义过滤器(Filter) 一.自定义Filter 自定义Filter需要继承ActionFilterAttribute抽象类,重写其中需要的方法,来看下ActionFilterAttri ...
- spring-cloud-Zuul学习(四)【中级】--自定义zuul Filter详解【重新定义spring cloud实践】
实现自定义zuul Filter 方法很简单,只要继承ZuulFilter跟加入到spring IOC容器即可,zuulFilter是一个抽象类,里面包含以下方法需要我们实现: String fi ...
- Struct2中自定义的Filter无效
解决办法,把自定义的Filter配置放在struct2前 <?xml version="1.0" encoding="UTF-8"?> <we ...
- Day21 过滤器(Filter)
day21 过滤器(Filter) 过滤器概述 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个 ...
- shiro自定义logout filter
虽然shiro有自己默认的logout过滤器,但是,有些时候,我们需要自己定义一下操作,比如说loutgout后,进入指定页面,或者logout后写入日志操作,这个时候,我们可以通过自定义logout ...
随机推荐
- 【BZOJ2395】[Balkan 2011]Timeismoney
[BZOJ2395][Balkan 2011]Timeismoney 题面 \(darkbzoj\) 题解 如果我们只有一个条件要满足的话直接最小生成树就可以了,但是现在我们有两维啊... 我们将每个 ...
- MYSQL中日期与字符串间的相互转换
一.字符串转日期 下面将讲述如何在MYSQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 1.无需转换的: SELECT * FROM tairlist_day WHERE rq ...
- Linux安装gitlab
一.GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.安装方法是参考GitLab在GitHub上的Wiki页面. 二.我相信使用过git的开 ...
- Mybatis利用拦截器做统一分页
mybatis利用拦截器做统一分页 查询传递Page参数,或者传递继承Page的对象参数.拦截器查询记录之后,通过改造查询sql获取总记录数.赋值Page对象,返回. 示例项目:https://git ...
- java之接口开发-初级篇-socket通信
socket通信实现util包类实现 public class SocketThread extends Thread { public void run() { while (true) { // ...
- Matlab中 .' 的作用。
Syntax B = A.' B = transpose(A) Description B = A.' returns the nonconjugate transpose of A, that ...
- VLP16线用户手册.md
VLP16线用户手册 文档 传感器数据 分组类型和定义 传感器产生两种类型的数据包:数据包和位置数据包.位置包有时也被称为遥测包或GPS包. 数据包包括传感器测量到的三维数据以及返回光脉冲的表面的校 ...
- Amazon移除差评适用范围 - Amazon request for the feedback removal
Greetings from Amazon Seller Support, Please accept my sincere apologies for the inconvenience cause ...
- JS - Promise使用详解--摘抄笔记
第一部分: JS - Promise使用详解1(基本概念.使用优点) 一.promises相关概念 promises 的概念是由 CommonJS 小组的成员在 Promises/A 规范中提出来的. ...
- 每日Scrum--No.3
Yesterday:帮着队友一起打开地图 Today:学习迪杰斯特拉算法,试着编写程序代码 Problem:语法逻辑出错,在执行的时候,有的时候出现死循环,有的时候屏幕出现null和乱码.语句的编写有 ...