day80 django模版学习

  一.模版简介

    DTL:django模版语言

    核心:

      变量 {{}}

      标签 {% %}

  二.模版语法之变量

    变量渲染:{{变量}}

    变量深度查询:{{变量.索引/key值/方法}}

  三.模版之过滤器

    变量之过滤器(是个函数)

    语法:(后面只能传一个函数)

      {{变量名|过滤器的名字:参数}}

    内置过滤器:

      <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>

  四.模版之标签

    语法:{%  %}

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

      {{a}}

      <p>aaaa</p>

      {% endwith %}

  五.自定义过滤器

    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 }}

  六.自定义标签

    1.确认app是否在settings中注册

    2.在app下创建templatetags的模块(名字固定)

    3.在模块下创建py文件(名字随意)--->在模版中(% load py文件名字 %)

    4.在py文件中写过滤器

      from django.tamplate import Library

      register = Library()

      # 指定了name之后,模版上使用的时候,直接用name调用,如果没指定name,就用函数的名字

      # 过滤器最多有两个参数

      @register.simplr_tag(name='mytag')

      def my_tag(a,b,c):

        return a+b+c

    5.模版中使用

      1 {% load py文件名字 %}

      2 {% mytag 参数1 参数2 参数3 %}

  七. 标签和过滤器的区别:

    1.标签和过滤器的区别:

    2.使用过滤器{{}}  标签使用:{%  %}

    3.过滤器可以放在if判断后,标签不能放在if判断后

原文地址:https://www.cnblogs.com/xiaocaiyang/p/10251119.html