一、特殊符号
{{}}和{%%},与变量相关用{{}},与逻辑相关用{%%}
二、变量
<p>1.数字测试:{{ number }}</p> <p>2.字符串: {{ str }}</p> <p>3.列表: {{ hobby.1 }}</p> <p>4.字典:{{ information.name }}</p> <p>5类:{{ p_class.area }}</p> {# 列表通过 变量.index取值 字典通过 变量.key取值 类通过 变量.属性 或 变量.方法 注意:该方法不能待参数 #}
三、Filters(过滤器)
认知:相当于Linux中的管道符
1、原生
<p>{{ 无 | default:"这是一个常量" }}</p> <p>str的长度:{{ str | length }}</p> <p>文件的大小格式化输出:{{ file_size | filesizeformat }}</p> <p>切片列表hobby:{{ hobby | slice:"1:3" }}</p> <p>时间格式:{{ now|date:"Y-m-d H:i:s" }}</p> <p>safe: {{ a_html|safe }}</p> <p>省略内容字符数:{{ p_content|truncatechars:16 }}</p> 注意:filesizeformat 前面变量的值单位为bytes 尽量不要使用空格
2、自定义过滤器
1)在app中创建一个templatetags
2、自定义py文件
from django import template register = template.Library() @register.filter(name="add") def add(arg): return "{} sb".format(arg) # 多个参数,在HTML页面arg1是| 前面的 arg2是|后面的,传递参数用: @register.filter(name="add_str") def add_str(arg1, arg2): return "{} {}".format(arg1, arg2)
3、加载在HTML文件中
{% load 自定义文件的名 %}
三、Tags
1、for循环
{% for foo in now %} {% endfor %}
{% for foo in now %} 不为空 {% empty %} 为空 {% endfor %}
{% for foo in now %} 不为空 {{ forloop.last }} {{ forloop.first }} {{ forloop.counter }} {{ forloop.counter0 }} {{ forloop.revcounter }} {{ forloop.revcounter0 }} {{ forloop.parentloop }} {% empty %} 为空 {% endfor %}
2、if语句
{% empty %} 为空 {% endfor %} {% if now %} {% elif 1 == 1%} {% else %} {% endif %}
3、with 别名
{% with information.name as n %} {{ n }} {% endwith %}