Django过滤器与自定义标签

Django自定义标签

{{变量}}

{%标签%}

| 过滤符

1、创建APP

2、在APP当中创建templatetags 包

3、在templatetags 目录下创建过滤器文件

(1)、实例化模板库。

注意:实例必须叫register

from django import template

from Student.models import Students
register = template.Library()

def dosomething(value):
    return value.upper()

register.filter('replaceUper',dosomething)

@register.filter('replaceLower')
def dosomething1(value):
    return value.lower()


@register.filter('replace')
def dosomething2(value,args):
    return value.replace(args,args.upper())

@register.filter('ADD')
def dosomething3(value,args1):
    return int(value)+int(args1)

@register.filter('getStudent')
def getStudents(value):
    id = int(value)
    stu = Students.objects.filter(id = id).first()
    if stu:
        return stu.name
    else:
        return False


import datetime
class CurrentTimeNode(template.Node):
    def __init__(self,formit_string):
        self.formit_string = str(formit_string)

    def render(self, context):
        now = datetime.datetime.now()
        return now.strftime(self.formit_string)
def do_current_time(parser,token):
    try:
        targename,arg = token.contents.split(None,1)
    except ValueError as e:
        raise template.TemplateSyntaxError(str(e))
    else:
        return CurrentTimeNode(arg)

注意事项:

(2) 注册app,增加OPTIONS项

(3)前端代码

(4)视图文件

定义在前端显示的变量

def Templatetag(request):
    example = 'hello world'
    num = 5
    return render(request,'templateTag.html',locals())

效果显示:

猜你喜欢

转载自blog.csdn.net/weixin_44239541/article/details/89161632