django的模板系统
Posted q767498226
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django的模板系统相关的知识,希望对你有一定的参考价值。
一.模板渲染语法
1.变量
{{ 变量 }}
2.逻辑
{% 逻辑语 %}
二.变量
在模板中有变量时,模板引擎会去反向解析找到这个传来的变量,然后替换掉.
.(点),在模板中是深度查询据点符,它的查询顺序: 字典 => 属性或方法 => 数字索引
三.过滤器
1.语法
{{ value|filter_name:参数}}
2.常用内置过滤器
{{ value|default:"nothing"}} 如果变量为空就是用默认值
{{ value|length }} 返回长度,用于字符串和列表
{{ value|filesizeformat}} 将变量格式化为文件大小格式
{{ value|slice:"::-1"}} 切片
{{ value|date:"Y-m-d H:i:s"}} 格式化时间
{{ value|safe}} 设置为安全值,不会误判为xss攻击
{{ value|truncatechars:6}} 以数量(包含三个点)截断字符串,剩余部分显示...
{{ value|truncatewords:6}} 以单词数量截断字符串,用空格来识别单词
{{ value|cut:" "}} 移除value中的字符
{{ value|join:"_"}} 用字符串连接列表
四.逻辑标签
1.for循环
{% for i in lst %}
{{ forloop.counter }}{{ i }}
{% endfor %}
forloop.counter 从1开始的索引值
forloop.counter0 从0开始的索引值
forloop.revcounter 倒叙到1
forloop.revcounter0 倒叙到0
forloop.first 判断当前循环是不是第一个,返回bool
forloop.last 判断当前循环是不是最后一个,返回bool
forloop.parentloop 获取本层循环的父级循环对象,能用以上方法
2.for...empty
{% for i in lst %}
{{ i }}
{% empty %}
这个列表是空的,不是遍历到的值是空的
{% endfor %}
3.if条件判断,基本支持python中的判断,但是不支持连续判断
{% if 条件 %}
结果
{% elif 条件 %}
结果
{% else %}
结果
{% endif %}
4.with 别名
{% with a = 复杂变量 %} / {% with 复杂变量 as a%}
{{ a }} 只能在with语句中使用
{% endwith %}
5.csrf_token 跨站请求伪造保护
{% csrf_token %} 防止post请求登陆时恶意攻击
五.继承
1.模板
{% block 变量名 %}
模板预留位置
{% endblock %}
2.继承板
{% extends "模板.html" %}
{% block 变量名 %}
替换内容
{% endblock %}
以上是关于django的模板系统的主要内容,如果未能解决你的问题,请参考以下文章