在哪里定义,要将代码写在什么地方?

代码布局:(死去活来)

  • app目录下的名为'templatetags'的文件夹,必需叫用它。这个文件夹必需是一个Python的包。这个文件夹下一定有一个'__int__.py'的文件
  • 自定义的模板标签,或模板过滤器就放在这个包下的Python模块中(.py文件)。
  • app必需在setting中被注册

一、自定义模板过滤器

定义

自定义过滤器就是一个Python的函数。它有一个或两个参数。

第一个参数就是那个传进来的模板变量(可以是任意的数据类型)

第二个参数是一个普通的参数,可以是默认参数。也可以不要这个参数。

注册

 

 

效果:

在模板中使用

1、load标签,引入自定义的模块,也就是templatetags包里的那个python文件

 {%load teacher_filters%}

<td>{{ student.sex|my_male }}</td>

 注意:新建了templatetags文件夹,要重启一下django服务。

 两个参数

 

命名

二、自定义模板标签

干任何事情

标签类型

1、简单标签

'''django.template.Library.simple_tag()'''

接收许多参数

创建和注册

使用效果如下:

其实,模板标签就是一个函数。

{% current format_str %} #跟普通的函数传参数一样,字符串,模板变量,关键字参数

使用上下文变量:

在自定义标签中,使用当前模板中的上下文变量context

 

2.包含标签

 通过渲染另外一个模板展示数据。

定义:

效果图:

包含标签:

 

posted on 2019-03-29 02:46  春风春又生  阅读(143)  评论(0)    收藏  举报