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

    在app下创建一个名叫templatetags的python包 ,名字必须为templatetags

     在包内创建python文件,名字随意

    在文件中添加以下内容,固定写法

    from django import template
    register = template.Library()

    自定义filter

    在文件中写函数,并添加装饰器 

    from django import template
    
    register = template.Library()
    
    @register.filter()
    def add_wl(value, arg):
        return '{}_{}_wl'.format(value, arg)

    在模板中使用,记得重启django,可以在网页中输入地址查看

    {% load  my_tags%}
    {{ qwe|add_wl:'asd' }}
    {% if 'qwe'|add_wl:'q' == 'qwe_q_wl' %}
        真
    {% endif %}

    自定义simple_tag

    写函数(函数参数不受限制),加装饰器

    @register.simple_tag
    def str_join(*args, **kwargs):
        print(args)
        print(kwargs)
        return "-".join(args) + '*'.join(kwargs.values())

    使用

    {% load my_tags %}
    {% str_join 'k1' 'k2' 'k3' k1='v1' k2='v2' %}

    自定义inclusion_tag

    返回一个动态的代码段

    写函数加装饰器

    @register.inclusion_tag('li.html')
    def show_li(num):
        return {'num': range(num)}

    写模板(li.html)

    <ul>
        {% for foo in num %}
            <li> {{ foo }}</li>
        {% endfor %}
    </ul>

    使用,以下会生成10个li标签

    {% load my_tags %}
    {% show_li 10 %}
  • 相关阅读:
    js中变量声明提前
    冒泡与捕获
    win7安装不了nodejs及解决方法
    nodejs配置app的服务
    Ming Rpc
    test
    Java8 Lambda sample (iwantmoon.com出品)
    Spring Mvc 输出Json(iwantmoon.com出品)
    单点登录(iwantmoon.com出品)
    虚拟机WIN10发布.NetCore 3.1
  • 原文地址:https://www.cnblogs.com/wanglan/p/10306682.html
Copyright © 2011-2022 走看看