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 ...
随机推荐
- 【BZOJ2754】[SCOI2012]喵星球上的点名
[BZOJ2754][SCOI2012]喵星球上的点名 题面 bzoj 洛谷 题解 这题有各种神仙做法啊,什么暴力\(AC\)自动机.\(SAM\)等等五花八门 我这个蒟蒻在这里提供一种复杂度正确且常 ...
- jquery.validate使用 - 5
一些常用的验证脚本 不会写js了,只能从网上找一些常用的验证脚本. // 手机号码验证jQuery.validator.addMethod("mobile", function(v ...
- 《Node.js 包教不包会》
<Node.js 包教不包会> 为何写作此课程 在 CNode(https://cnodejs.org/) 混了那么久,解答了不少 Node.js 初学者们的问题.回头想想,那些问题所需要 ...
- javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- SteamVR Unity Plugin - v2.0.1中的InteractionSystem
最近写VR项目的时候用到了SteamVR Unity Plugin - v2.0.1插件,感觉比之前用到的SteamVR plugin for Unity - v1.2.2版本改进了很多,就算不用VR ...
- hadoop 基础入门
启动: 格式化节点:bin/hdfs namenode -format 全部启动:sbin/start-dfs:datanode.namenode sbi ...
- jvm之对象创建过程
常量池中定位类的符号引用 ↓ 检查符号引用所代表的类是否已被加载,解析和初始化过 → ↓ ...
- 十几行代码带你用Python批量实现txt转xls,方便快捷
前天看到后台有一兄弟发消息说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现,我在后台简单回复了下,其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分 ...
- [leetcode-908-Smallest Range I]
Given an array A of integers, for each integer A[i] we may choose any x with -K <= x <= K, and ...
- 关于JavaScript定时器我的一些小理解
因为自己在平时工作中,有些功能需要用到定时器,但是定时器并不像我们表边上看到的那样,所以这周末我看看书查查资料,深入研究了一下JavaScript中的定时器,那么废话不多说,下面进入我们今天的正题. ...