• 自定义标签过滤器


     1 2 模版之过滤器
     2         -语法:{{第一个参数|过滤器名字:第二个参数}}
     3         -常用过滤器:(详细用法见源码)
     4             -length
     5             -default
     6             -slice
     7             -date
     8             -filesizeformat
     9             -truncatechars
    10             -truncatewords
    11             -safe
    12             -add
    13     3 模版之标签
    14         -{% 标签 %}
    15         -for:forloop:对象(里面有好多东西:parentloop,last,first,counter....)忘记的话,    自己打印一下
    16             empty:被循环的对象是空,才走它
    17             for循环可以嵌套,也可以用if
    18         -if:
    19             {% if forloop.first %}
    20                 <p>第一次的我 </p>
    21             {% elif forloop.last %}
    22                 <p>最后的我 </p>
    23             {% else %}
    24                 <p>{{ foo }}</p>25             {% endif %}
    26         -with:重命名,应用在变量名过长
    27         ********都要有结束********
    28         
    29     4 自定义标签和过滤器
    30         --***标签不能用在if判断,过滤器,可以用在if判断
    31         -自定义过滤器
    32             -1 先app是不是已经在setting中注册
    33             -2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
    34             -3 在模块下创建一个py文件,名字随意:mytag.py
    35             -4 # 第一步,导入template
    36                from django.template import Library
    37                # 第二步,定义一个叫register的变量=template.Library()
    38                register = Library()
    39             -5 写一个函数,用@register.filter(name='yyy')装饰一下(可以指定别名)
    40                 def str_add(str1, str2): #一定要有返回值
    41                     # 业务逻辑很复杂
    42                     return str1 + str2
    43             -6 在模板里:(新定定义的标签,过滤器,都要重启程序)
    44                 -{% load mytag %}
    45                 -{{'lqz'|str_add:'nb'}}
    46         -自定义标签:
    47             -1-4:前4步,根过滤器的定义完全一样
    48             -5 只是装饰器不一样
    49             @register.simple_tag()
    50                 def add_nb(value):
    51                     return value+'nb'
    52             -6 在模板里:(多个参数,以空格区分)
    53                 -{% load mytag %}
    54                 -{% add_nb 'xqd'%}
    55

    补充:inclusion_tag
    -先注册app
    -在app下创建一个templatetags的模块
    -在模块下新建一个py文件
    -from django.template import Library
    -register=Library()------>名字必须叫register
    -使用装饰器:@register.inclusion_tag('test.html')
    -写个函数my_inclusion,返回字典
    -模板里就能取到字典,渲染模板
    -使用:
    在模板中:{%load py文件名%}
    {% my_inclusion 参数%}

  • 相关阅读:
    高德地图API之公交路线
    高德地图API之骑行路线
    高德地图API之货车路线
    高德地图API之步行路线
    高德地图API之驾车路线
    高德地图API常用控件的添加与删除(鹰眼、工具条、比例尺)
    高德地图API,地图类型切换(卫星地图)
    高德地图API之缩放比例尺控件+3D转换
    Laravel 虚拟开发环境 Homestead 密码
    优化mysql
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12099535.html
Copyright © 2020-2023  润新知