Django学习之模板层之自定义标签和过滤器

1>自定义标签和过滤器

    当django自带的一些标签不能满足我们项目的开发需求的时候,就需要自定标签或者过滤器了

    自定义标签步骤如下,

    

    

    

    

    过滤器和标签的引用

    

    

    

    从上可以看出,自定义标签和过滤器整个流程基本一样,除了自定义函数调取的装饰器不一样,其他都一样。

    还有一点要注意,filter最多只能传入两个参数,如上,a1是一个,函数冒号后面是一个,

    标签则可以多个,看传参方式也能看出来,参数1[空格]参数2[空格]参数3[空格]参数4。。。

    但是,filter可以用在if等逻辑语句中,但是标签不可以,例子如下

    

    

2>模板继承

    模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks

    从名字也可以看出来,这提升代码复用性的功能,就是一些网页的框架可以写到一个单独的html文件,

    然后里面留下可扩展/需要重新编写的“区域块”,再编写新的HTML内容时,先引入这个框架,再基于框架

    完善之前的“区域块”。

    模板继承两个重要的语法,一个 include,一个extends。

    include主要是引入内容,类似模板复用功能,例子如下:

    

    现在单独写入一个文件,用include引入,如下:

    

    

    

    extends功能比include更强大些,它可以模板继承(框架视角),预留自定义的区域块,非常灵活

    

    

    

    接下来,补充下之前预留的区域块

    

    

    说一说 {{ block.super}}

    如上,当预留的区域块{%block %}里面有内容时,写入新的会覆盖旧的记录,当我想保留这些模板数据的时候

    应该怎么办呢? 这个时候,就引入{{block.super}}来解决这个问题。

    

    

    

    其他一些注意的点:

        在模版中使用 {% extends %} 标签,它必须是模版中的第一个标签

        

猜你喜欢

转载自blog.csdn.net/huangql517/article/details/81051905