Django-模板 Template
django中的模板,是由html充当的
模板中常见的标签
- 输出标签
{{ key }}
- 判断标签
{% if 条件 %}
{% elif 条件 %}
{% else %}
{% endif %}
{% ifequal 条件 %} {% endif %}
等于某个条件时执行
{% ifnotequal 条件 %} {% endif %}
不等于某个条件时执行 - 循环标签
{% for 变量名 in interator %}
在for循环中,内置一个forloop对象,forloop常见的属性: - couter0:代表列表中元素的索引
- counter:代表列表中元素的索引+1
- revcounter0:代表列表中元素的倒叙的索引
- revcounter:代表列表中元素的倒叙索引+1
- first:代表列表中元素 是否是第一条记录
- last:代表列表中的元素是否为最后一条记录
- parentloop:视图函数如果传递了一个forloop变量,这在for循环中会产生歧义,for循环会将视图函数传递的forloop重命名为parentloop,且只在for循环中生效
static标签
- 加载static标签
{% load static %}
- 使用static标签
{% static 'js/xxx.js' %}
include标签
用于提取公共代码,形成一个可复用的组件
{% include xxx.html %}
block标签
将模板以块的方式来定义
{% block 名字 %} {% endblock %}
extends标签
用于继承关系
{% extends template.html %}
url标签
常用于路由的反向解析
{% url '路由的名称' %}
路由反向解析需要传递参数的时候
{% url '路由的名称' 参数 %}
url标签的完整语法为(只能用于应用路由):
{% url 'namespace:router_name' param %}
namespace是命名空间,一般在应用下设置app_name来解决路由重名的问题
router_name是路由的名称
param是路由的参数,针对参数路由,多个参数用空格分隔
模板中常见的过滤器
- capfirt:首字母转大写
- floatformat:小数格式化
- lower:字母转为小写
- upper:字母转为大写
- make_list:将字符串或数字转为列表
- turncatechars n:超过n个字符就将之后的内容换成…
- urlencode:对一个url进行编码
- urlize:将一个url变为可点击的a标签
- ljust/rjust:左/右对齐
- cut params:将字符串中指定的params替换成空字符串
- safe:代表字符串是安全的 非必要情况 不要使用 易被黑客攻击
- first:获取列表中的第一条记录
- last:获取列表中的最后一条记录
- join:将一个列表通过指定的分隔符拼接成一个新的字符串
- length:获取长度
- length_is n:判断长度是否为n
- random:随机从列表中获取一条记录
- add: n:对数字加n
- date:‘Y-m-d H:i:s’:格式化时间
- default:设置默认值
- filesizeformat:对文件大小做格式化处理