zoukankan      html  css  js  c++  java
  • Django-【template】自定义过滤器和自定义标签

     
    模板语言内置的过滤器和标签比较少,往往会遇到无法满足需求的情况,所以需要我们来自定义。自定义filter和simple_tag在项目中很常用
     
    a.首先检查settings下面INSTALLED_APPS有没有注册当前应用
     b.然后在应用下面创建templatetags模块,我建一个templatetags包,建一个"任意名称".py文件
    先写上下面这个固定格式的工厂函数(变量名也是固定的)
    from django import template
    from django.utils.safestring import mark_safe
    
    register = template.Library()   #register的名字是固定的,不可改变
     
    然后自定义过滤器,自定义标签
    from django import template
    from django.utils.safestring import mark_safe
    
    register = template.Library()   #register的名字是固定的,不可改变
    
    
    @register.filter
    def filter_multi(v1,v2):
        return  v1 * v2
    
    
    @register.simple_tag
    def simple_tag_multi(v1,v2):
        return  v1 * v2
    
    
    @register.simple_tag
    def my_input(id,arg):
        result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
        return mark_safe(result)
     
    c.在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py : 加上{% load my_tags %}
     
     
    filter可以用在if等语句后,simple_tag不可以
     
  • 相关阅读:
    .net 流读取
    c#小Tip:数字格式化显示
    VS.NET优化编译速度
    Application.Run()和Form.Show()的区别
    如何利用系统函数操作文件夹及文件
    设计优秀的用户界面
    我妈过来了
    帮你免于失业的十大软件技术(转抄)
    正试图在 OS 加载程序锁内执行托管代码
    NASA World Wind
  • 原文地址:https://www.cnblogs.com/lucaq/p/7592268.html
Copyright © 2011-2022 走看看