django自定义模板和过滤器

-自定义过滤器
            -1 先app是不是已经在setting中注册
            -2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
            -3 在模块下创建一个py文件,名字随意:mytag.py
            -4 # 第一步,导入template
               from django.template import Library
               # 第二步,定义一个叫register的变量=template.Library()
               register = Library()
            -5 写一个函数,用@register.filter(name='yyy')装饰一下(可以指定别名)
                def str_add(str1, str2): #一定要有返回值
                    # 业务逻辑很复杂
                    return str1 + str2
            -6 在模板里:(新定定义的标签,过滤器,都要重启程序)
                -{% load mytag %}
                -{{'lqz'|str_add:'nb'}}
        -自定义标签:
            -1-4:前4步,根过滤器的定义完全一样
            -5 只是装饰器不一样
            @register.simple_tag()
                def add_nb(value):
                    return value+'nb'
            -6 在模板里:(多个参数,以空格区分)
                -{% load mytag %}
                -{% add_nb 'lqz'%}
from django import template

register = template.Library()



@register.filter(name = 'yyy')
def str_add(str1,str2):
    #业务逻辑可以很复杂
    return str1 + str2

@register.simple_tag()
def add_nb(value):
    return value+'hahah'

@register.simple_tag()
def add_3nb(value1,value2,value3):
    return value1+value2+value3+'hahah'

 

posted @ 2018-11-09 19:52  zhaijihai  阅读(220)  评论(0编辑  收藏  举报