zoukankan      html  css  js  c++  java
  • Django基础007--filter&tag

    1.Django自带的过滤器filter

    def index(request):
        print('index...........')
        navs = '今天天气真好fdsfds!!!'
        title='<h1>testsss</h1>'
        categories = models.Category.objects.all()
        articles = models.Article.objects.all()
        return render(request,'index.html',{'articles':articles,'navs':navs,'title':title})
    -----test-------{{ navs|length }}<br>  --字符长度
    -----test-------{{ navs.0 }}<br>       --获取第一个字符
    -----test-------{{ navs|truncatechars:6 }}<br> --大于6个字符的省略显示,中文占两个字符
    -----test-------{{ title|upper }}<br>     --英文字母大写,相对应的有lower
    -----test-------{{ title|safe }}<br>      --如果返回的数据是标签格式,会渲染到页面上
    -----test-------{{ navs|slice:"0:8" }}<br>  --切片
    {{ cur_time|date:'Y/m/d H:i:s'}}<br>    -- 格式化时间
    {{ title |default:"管理员"}}<br> -- 如果后台没有返回则显示默认参数
    {{ navs|join:"="}} <br>       -- 拼接,如果是字符串则每个字符串中间用=号相连

    2.Django自定义过滤器

    1.在app的根目录下创建templatetags目录

    2.创建tmpTags.py文件

    3.固定导入

      from django import template

         register = template.Library() # register变量必须这么定义
    4.使用装饰器@register.filter修饰自定义的filter方法
    from django import template
    register = template.Library()
    
    
    #自定义过滤器
    @register.filter
    def status_filter(x):
        return '自定义过滤器Filter'

    5.在html文件中导入{% load tmpTags %}

    6.使用

    -----test----{{ navs|status_filter }}

    7.filter最多支持2个参数,管道符左侧为第一个参数,冒号后为第二个参数。

    实例

    from django import template
    register = template.Library()
    
    @register.filter
    def status_filter(x):
        if x==1:
            return '成功'
        elif x==2:
            return '失败'
        else:
            return  '自定义filter。。。'
    
    @register.filter
    def add(x,y):
        return x+y
    -----test----{{ navs|status_filter }}
    -----test----{{ status|status_filter }}
    -----test----{{ status|add:3 }}

    3.Django自定义tag

    1、在app的根目录创建templatetags目录
    2、创建xxx.py的文件
    3、固定导入
    from django import template
    register = template.Library() # register变量必须这么定义
    4、使用装饰器@register.simple_tag修饰自定义的simple_tag方法
    5、例:
    @register.simple_tag
    def simple_tag_demo(x, y,z):
    return x + y + z
    6、在html中导入{% load demoTags %}
    7、使用
    {% simple_tag_demo 1 2 3 %} --自定义simple_tag
    8、simple_tag可以支持多个参数,通过空格进行分格即可

    实例

    @register.simple_tag
    def simple_tag(x,y,z):
        return x+y+z
    <h1>simple_tag</h1>
    {% simple_tag 1 2 3 %}
  • 相关阅读:
    多线程中sleep方法,简单介绍。
    线程终止的四种方式,interrupt 方法使用的简单介绍。
    线程的生命周期 介绍
    线程池之 newSingleThreadExecutor 介绍
    python 中 *args he **kwargs的区别
    转载:创业者和工作谈的是一场永不分手的虐恋
    给自己一份勇气,勇敢的面对生活
    做一面锃亮的镜子吧
    与人交往时关注内容而不是表情
    最近比较需要正能量:经典励志人生感悟的句子
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/13598563.html
Copyright © 2011-2022 走看看