zoukankan      html  css  js  c++  java
  • Django基础08篇 filter&tag

    1.Django自带的过滤器filter

    views.py中代码

    def template_tags(request):
        import datetime
        content = '三胖content三胖contentSBcontentsbcontentcontentcontentcontentcontent'
        title = 'tiTLe'
        stus = ['xiaohei', 'xiaobai', 'lhy']
        info = {"money":9999}
        cur_date = datetime.datetime.now()
        name = '小白'
        age = 35
        return render(request, 'template_tags.html', locals())

    前端代码

    {% load my_tags %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>模板标签</title>
    </head>
    <body>
        {#    Django自带#}
        {#    截取字符串#}
        <p>{{ content| truncatechars:30 }}</p>
        {#    大写#}
        <p>{{ title|upper  }}</p>
        {#    小写#}
        <p>{{ title|lower  }}</p>
        {#    获取数组长度#}
        <p>{{ stus|length}}</p>
        {#    切片#}
        <p>{{ stus|slice:"0:4"}}</p>
        {#    下标取值#}
        <p>{{ stus.0 }}</p>
        {#    拼接字符串#}
        <p>{{ stus|join:'-' }}</p>
        {#    字典取值#}
        <p>{{ info.money }}</p>
        {#    字符串后添加#}
        <p>{{ name|add:",你好" }}</p>
        {#    整数加#}
        <p>{{ age|add:1 }}</p>
        {#    格式化时间#}
        <p>{{ cur_date | date:"Y-m-d H:i:s" }}</p>
    
        {% with class="天马座" %}
            <p>{{ class }}</p>
        {% endwith %}
    
    </body>
    </html>
    template_tags.html

    页面效果

    2.Django自定义过滤器filter

    1).在子项目(此处在user目录下)的根目录下创建templatetags目录

    2).创建my_tags.py文件

    3).固定导入

      from django import template

         register = template.Library() # register变量必须这么定义
    4).使用装饰器@register.filter修饰自定义的filter方法
    from django.template import Library
    
    register = Library()
    @register.filter
    def mingan(content):
        return content.replace("三胖", '小白')
    
    @register.filter
    def mingan2(content, s):
        return content.replace("三胖", s)
    
    @register.simple_tag
    def mingan3(content, *agrs):  # 支持多个参数
        for arg in agrs:
            content = content.replace(arg, '小白')
        return content

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

    6). 使用

    {{ content| mingan }}    
    此函数只有1个参数,管道符|左侧的就是第一个参数传给管道符后的函数
    {{ content| mingan2:'大傻子' }}
    此函数只有2个参数,管道符|左侧的就是第一个参数传给管道符后的函数,:后是第二个参数
    {% mingan3 content 'sb' 'SB' '三胖' %}
    此函数支持多个参数
    {% load my_tags %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>模板标签</title>
    </head>
    <body>
        {#    自定义函数#}
        <p>{{ content| mingan }}</p>
        {#    自定义函数#}
        <p>{{ content| mingan2:'大傻子' }}</p>
        {% mingan3 content 'sb' 'SB' '三胖' %}
    </body>
    </html>
    template_tags.html

    效果如下:

  • 相关阅读:
    Solaris 默认Shell 修改
    关系数组
    文件描述符 文件操作 <> open 文件句柄
    IO 双引号 输出 输入
    第五章答案
    子例程 subroutine
    钻石操作符
    花括号的使用 printf %${width}s , 否则会 去找 $widths
    print reverse <> 是打印全部的文件内容 ?
    hihoCoder#1239 Fibonacci
  • 原文地址:https://www.cnblogs.com/lhy-qingqiu/p/14089706.html
Copyright © 2011-2022 走看看