zoukankan      html  css  js  c++  java
  • Django 自定义tag 和 filter

     自定义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>

    if 中调用自定义filter

    如果 

    num+30 大于30 输出successful
    {% if num|myAddf2:30 > 30 %}
        <p>successful</p>
    {% endif %}
  • 相关阅读:
    CSS基础学习(二)
    CSS基础学习(一)
    《人月神话》读后感(第五六章)
    Python基础学习
    团队项目介绍
    全国疫情数据可视化展示(详细介绍)
    《人月神话》读后感(第三四章)
    拓展欧几里德
    Siano
    操作系统内存大页(THP)对redis性能的影响
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/9319951.html
Copyright © 2011-2022 走看看