模板语言

变量的写法

name_list:{{ name_list }}

name_dict:{{ name_dict }}

按照索引取值

使用.调用下标,不支持负数

{{ name_list.0 }} {{ name_dict.keys }} {{ name_dict.items }}

循环相关

{% for name in name_list %}

  • {{ forloop.revcounter0 }} :{{ name }}

{% for n in name %}

  • {{ forloop.parentloop.counter }}.{{ forloop.counter }}:{{ n }}

{% endfor %} {% endfor %}

fliter常用用法

计算长度: name_list长度{{ name_list|length }};;“王二小”长度:{{ name_list.0.1|length }}

文件大小:123456789:{{ size|filesizeformat}}

切片:王二小[1:]{{ name_list.0.1|slice:"1:" }}

默认值:没有变量 same:{{ same|default:"同样的" }}

时间:注意写法 {{ date|date:"Y-m-d h:i:s" }}

safe: 防止xss 攻击,文本变量配有safe过滤时可将文本按照代码执行

字符截断(包含三个.的总个数,参数为函数的占位数):{{ chars|truncatechars:10}}

中文字符截断:{{ words|truncatechars:10}}

文字截断(按空格计算):{{ words|truncatewords:5 }}

with用法

{% with name_list.0 as n1 %} 将长变量名改为短名:{{ n1.1 }} {% endwith %}

自定义fliter用法

    函数的定义
  1. 在app文件夹下新建一个templatetags的包
  2. 在上述包中创建一个.py 文件
  3. from django import template
  4. 生成注册用实例register = template.Libary()
  5. @register.fliter(name="")
  6. 定义函数
    函数使用:
  1. 用load导入自定义的py文件{% load my_tags %}
  2. 像fliter一样使用函数{{ name_list.0|addsb }}

simple_tag用法(可以传递多个参数)

    函数的定义
  1. 在app文件夹下新建一个templatetags的包
  2. 在上述包中创建一个.py 文件
  3. from django import template
  4. 生成注册用实例register = template.Libary()
  5. @register.simple_tag(name="")
  6. 定义函数
    函数使用:
  1. 用load导入自定义的py文件 {% load my_tags %}
  2. 逻辑函数使用的方法,参数用“”包起来,多个参数以空格分割 :{% manywords "binbin" 27 "famale" %}

inclusion用法:生成数据,然后根据html文件定义的样式返回

    函数的定义
  1. 在app文件夹下新建一个templatetags的包
  2. 在上述包中创建一个.py 文件
  3. from django import template
  4. 生成注册用实例register = template.Libary()
  5. @register.inclusion_tag("文件名.html")
  6. 定义函数
    函数使用:
  1. 在需要引用的页面,用load导入自定义的py文件 {% load my_tags %}
  2. 逻辑函数使用的方法,参数用“”包起来,多个参数以空格分割 :{% create_page 10 %}

动态获取static文件夹

  • 加载 static :{% load static %}
  • 写文件地址{% static "文件地址“%}

原文地址:https://www.cnblogs.com/modengdai/p/10252424.html