首页 > 其他 > 详细

Django 自定义tag 和 filter

时间:2018-07-16 20:56:28      阅读:153      评论:0      收藏:0      [点我收藏+]

 自定义tag 可以传递多个值,自定义filter最多值可以传递两个值

自定义filter 可以放在{% if %} 中,自定义tag 不可以

 

 

 

1.在  app 下新建一个package名字叫templatetags

技术分享图片

 

 

2.在templatetags下创建一个python 文件

技术分享图片

 

 

3. python中是自定义的代码

from django import  template
from  django.utils.safestring import  mark_safe


#register 是固定的变量名,不能改变
register = template.Library()


# 自定义tag 和 filter的不通之处只在于:
#     tag使用 @register.simple_tag 装饰器
#     filter使用 @register.filter 装饰器



@register.simple_tag
def myAdd(n):
    return n+200

@register.simple_tag
def myAdd2(n1,n2,n3):
    return n1+200+n2+n3

@register.filter
def myAddf(n):
    return n+100

@register.filter
def myAddf2(n1,n2):
    return n1+100+n2

 

 

4. 在HTML中使用自定义的tag 和filter

 

{% load myTag %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>t8</title>
</head>
<body>
    <h1>template</h1>

{#    在HTML中使用{% load myTag %} 来引入自定义的文件#}
{#调用自定义tag#}
    {%  myAdd num %}
   {%  myAdd2 num 100 20 %}


{#    调用自定义filter#}
    {{  num | myAddf}}
{#    向自定义filter中传递两个参数#}
    {{  num | myAddf2:100}}


</body>
</html>

 

Django 自定义tag 和 filter

原文:https://www.cnblogs.com/gaizhongfeng/p/9319951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!