zoukankan      html  css  js  c++  java
  • 自定义标签过滤器

     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 参数%}

  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12099535.html
Copyright © 2011-2022 走看看