django-模板
可以嵌入模板代码,再通过在视图中渲染模板,将最终生成的网页返回给客户端
实现了业务逻辑与模板的解耦
模板部分包括静态和动态:
静态:html,js,css
动态:就是模板语言
Django模板简称GTL
定义在django.template包中
Django处理模板分为两个步骤:
1.加载模板: 根据跟定的路径查找模板,并放到内存中
2.使用上下文数据对模板进行传值,并返回动态生成的网页
动态生成的网页:就是显示的内容不确定,大部分都是从数据库中获取的或者根据某种请求生成的一些数据的网页
模板语言的四种类型:
1. 变量
2.标签
3.过滤器(可以自定义过滤器)
4.注释
模板语言的作用:获取,处理传入到模板中的上下文数据,动态的产生页面内容
变量:{{ 变量 }}
计算并输出上下文
命名规则:由字母,数字,下划线和点
变量的解析规则:
当模板引擎遇到点 如:book.name
会按照下列顺序解析:
1.字典 book[‘name’],通过key取值
2.先属性后方法,将book当做对象,查找其属性name,如果没有再查找方法name()
3.如果格式为book.0则解析为列表
book[0]
如果变量不存在则插入空字符传 ‘ ’
在模板中调用方法时不能传递参数
如果要使用带参数的方法,需要使用过滤器
标签:
{%代码段%}
常用的标签
for循环标签
{% for item in 列表 %}
执行循环逻辑
下面的是获取当前是第几次循环,从一开始
{{ forloop.cunter }}
列表为空或不存在结束
{% endfor %}
if 标签
{% if … %}
{% elif … %}
{% else … %}
比较运算符标签
运算符左右两侧必须有空格
过滤器:
作用:模板语言中不允许带参数的函数,如果想要对变量进行处理就需要使用过滤器
使用 | 管道符号来应用过滤器,用于计算或者转换等操作,可以使用在变量或者标签中
过滤器语法:
一个参数时:变量|过滤器
两个参数时:变量|过滤器:参数
第一个参数就是变量,如果过滤器需要追加参数,要使用 : 冒号传递参数,冒号后面最多可传递一个参数
常用的过滤器
length,返回字符串,列表,元祖,字典的元素个数
变量 | length
default,如果变量不存在时,则返回默认值
变量 | default:‘默认值’
date,用于对日期类型的值进行字符串格式化
常用的格式:
Y表示年,格式为4位,y表示两位的年
m表示月,格式为01,02等
j表示日,格式为1,2等
H表示时,24进制,h表示12进制的时
i表示分为0-59
s表示秒,为0-59
如果只是没有特殊要求,可以设置本地化,就可以完成对日期的要求