• django模板


    1 模版简介
    DTL:django模板语言
    核心:
    变量 {{ }}
    标签 {% %}

    2 模版语法之变量
    -变量渲染:{{变量}}
    -变量深度查询:{{变量.索引/key值/方法}}

    3 模版之过滤器
    变量之过滤器(是个函数)
    -语法:(后面只能传一个参数)
    {{变量名|过滤器的名字:参数}}
    -内置过滤器:
    <p>{{ age|add:3 }}</p>
    <p>{{ name|length }}</p>
    <p>{{ bol|default:'123' }}</p>
    <p>{{ ll2|default:'我是空的' }}</p>
    <p>{{ file_size|filesizeformat }}</p>
    <p>{{ ctime }}</p>
    <p>{{ ctime|date:'Y年m月' }}</p>
    <p>{{ name|slice:'2:4' }}</p>
    <p>{{ name|truncatechars:6 }}</p>
    <p>{{ name2|truncatewords:2}}</p>
    <p>{{ href|safe }}</p>

    4 模版之标签

    语法:{% %}

    -foo是一个可迭代对象
                {% for a in foo %}
    
                {% endfor %}
            -forloop:counter,couter0,revcounter,revcouter0,first,last,parentloop:父循环的forloop对象
            -for--empty的使用
                {% for foo in ll2 %}
                    {{ foo }}
                {% empty %}
                    没有值啊
                {% endfor %}
            -if判断
                {% if ll2 %}
                    ll2 有值
                {% elif ll %}
                    ll有值
                {% else %}
                    ll2 没有值
                {% endif %}
            -with重命名
                {% with dic.hobby.1 as a %}
                {#{% with a=dic.hobby.1 %}#}
                    {{ a }}
                    <p>aaaa</p>
                    {{ a }}
    
                {% endwith %}
    View Code

    5 自定义过滤器

    1 确认app是否在settings中注册
            2 在app下创建templatetags的模块(名字固定)
            3 在模块下创建py文件(名字随意)--->在模板中{% load py文件名字%}
            4 在py文件中写过滤器
                from django.template import Library
                register = Library()
                #指定了name之后,模板上使用的时候,直接用name调用,如果没指定name,就用函数的名字
                # 过滤器最多有两个参数
                @register.filter(name='myadd')
                def my_add(a,b):
                    print(a+b)
                    return a+b
            5 模板中使用
                -1 {% load py文件名字%}
                -2 {{ 变量|myadd:1}}
    View Code

    6 自定义标签

    1 确认app是否在settings中注册
            2 在app下创建templatetags的模块(名字固定)
            3 在模块下创建py文件(名字随意)--->在模板中{% load py文件名字%}
            4 在py文件中写过滤器
                from django.template import Library
                register = Library()
                #指定了name之后,模板上使用的时候,直接用name调用,如果没指定name,就用函数的名字
                # 过滤器最多有两个参数
                @register.simple_tag(name='mytag')
                def my_tag(a,b,c):
                    return a+b+c
            5 模板中使用
                -1 {% load py文件名字%}
                -2 {% mytag 参数1 参数2 参数3%}
    View Code

    7 标签和过滤器的区别:
    1 标签可以传多个参数,过滤器最多只能传2个
    2 使用过滤器{{ }} 标签使用:{% %}
    3 ****重点:过滤器可以放在if判断后,标签不能放在if判断后

  • 相关阅读:
    浅谈Huffman树
    CF884D:Boxes And Balls
    MySQL单表查询(重要)
    MySQL字段完整性约束(重要)
    MySQL数据类型(重要)
    数据库基本操作
    MySQL权限管理
    MySQL存储引擎概述
    数据库基础
    并发编程小结
  • 原文地址:https://www.cnblogs.com/zhanggq/p/10256797.html
Copyright © 2020-2023  润新知