Django具体操作(四)

自定义模板语法的标签

首先在django的项目中创建app并且在settings中添加了APP的名称。

在app添加templatetags模块(名字是固定的,也就是说,必须要这样)

如图如何自定义呢?

在刚刚建的package里面新建一个py文件,比如我建的叫做new_tags

这个就是自定义的tags

# -*- coding:UTF-8 -*-
__autor__ = 'zhouli'
__date__ = '2018/6/27 21:48'
from django import template  # 一定记住
from django.utils.safestring import mark_safe

register = template.Library()  # register的名字是固定的


# 以下装饰器都不要括号
@register.filter  # 过滤器 最多实现定位2个参数,第一个参数就是模板中的传的值,后面一个参数在模板中指定,优势是可以做逻辑判断
def filter_multi(v1, v2):
    return v1 * v2


@register.simple_tag  # 标签 优点参数不限制,缺点,无法逻辑判断
def simple_tag_multi(v1, v2, v3):
    return v1 * v2 * v3


@register.simple_tag
def my_input(id, arg):
    result = "<input type='text' id='%s' class='%s' />" % (id, arg,)
    return mark_safe(result)
View Code

下面是模板

上面也涉及到模板继承

猜你喜欢

转载自www.cnblogs.com/zhoulixiansen/p/9236355.html