zoukankan      html  css  js  c++  java
  • django-5-自定义模板过滤器及标签

    <<<代码布局(自定义的代码放哪里)>>>
     (1)某个app特有的
       1.一般放app目录下 固定名为templatetags 的python文件夹里鸭,如果是别的名称,django是找不到的哦!

       2.再在文件夹里面写模块
     (2)创建新的app,在里面加模块(**注意要注册app鸭!!!**)
    <<<自定义模板过滤器>>>
     首先创建模块,模块名固定为 customer_filters.py,如果是别的名字,运行会报错哦!!

     (1)模板过滤器(其实就是函数啦!)
       1.有一个或两个参数
        第一个参数是 模板变量
        第二个参数是普通参数,也可以不要
     (2)注册
       1.通过django.template.Library 它的实例的filter方法
         filter有两个参数
          name: 过滤器的名称,是一个字符串(如果不写name,函数名就是默认的filter名字哦!)
          filter_func:函数名
          register = Library()
          register.filter(<function>)
       2.通过装饰器
    from django.template import Library
    
    register = Library()
    
    @register.filter()
    def myfilter(value):
    ...
    

      

       在模板中使用

         
    <<<自定义模板标签>>>
     (1)简单标签(本质也是函数):
       django.template.Library.simple_tag()
     (2)创建:
       1.创建python模块,模块名固定为customer_tags.py,如果不是这个名字,也是会报错,真jer挑剔!!

       2.注册
         @filter.simple_tag(name=<function>)
    from django.template import Library
    
    register = Library()
    
    @register.simple_tag()
    def tag():
    ...
    

      


      **如果要拿到视图函数里面的context,则自定义标签函数的第一个参数是context
       其次让simple_tag函数中的take_context=True
      **
     (3)使用:同样也要load
     (4)inclusion标签:
       通过渲染另一个模板来展示数据
       这里用inclusion_tag(‘模板的路径’)来装饰
       **这个标签也可以拿到context,方法和simple_tag 一样**
     
     
  • 相关阅读:
    flask全栈开发3 模板
    flask全栈开发2 URL与视图
    flask全栈开发1 课程简介
    微信公众号开发中遇到的问题总结
    python web学习路线
    内存数据库Memcached和redis基本使用
    2019年8月12号成长题目
    2019年8月10号成长题目
    2019年8月7号成长题目
    SpringCloud简介与5大常用组件
  • 原文地址:https://www.cnblogs.com/wmkpy/p/10419587.html
Copyright © 2011-2022 走看看