Django模板(Templates)
1、什么是模板
模板就是要动态的给用户呈现的网页内容
其实就是一个网页-前后端结合的网页
2、模板的设置问题
在settings.py中TEMPLATES变量
TEMPLATES=[
{
'BACKEND':'...',
'DIR':[]
}
]
1、BACKEND:指定模板的搜索引擎,不用动
2、DIRS:指定模板所存放目录们,但是如果DIRS为空的话,那么Django会自动到每个应用中搜素一个叫templates的目录作为模板的管理目录
推荐:
1、DIRS内容保持为空
2、在每个应用中,都创建一个templates的目录
3、APP_DIRS
True:首先从DIRS中指定的目录中查找模板,如果没找到的话,在搜素templates目录
3、模板的加载方式
方式 1、使用loader或取模板,并通过HttpResponse进行响应
from django.template import loader
1、通过loader加载模板
t=loader.get_template('模板名称')
2、通过t对象,将模板渲染成字符串
t.render()
3、通过HttpResponse将html响应给客户端
return HttpResponse(html)
方式 2、使用render直接加载模板并返回
from django.shortcuts import render
return render(request,‘模板名称’)
4、模板的语法
1、变量
1、作用:允许将后端的数据传递给模板,在模板中,根据变量的值进行显示
2、在django中允许传递给模板做变量的数据类型:数字、字符串、列表、元组、字典、函数、对象
3、变量的语法
1、loader方式
dic={
'变量名1':‘值1’,
'变量名1':‘值2’
}
t=loader.get_template('xxx.html')
html=t.render()
return HttpResponse(html)
在模板中显示变量:{{变量名}}
2、render方式
dic={
'变量名1':‘值1’,
'变量名1':‘值2’
}
return render(request,‘xxx,html’,dic)
2、标签
1、什么是标签
允许将服务器的一些功能嵌入到模板中
2、语法
{%标签内容%}
3、常用标签
1、for
{% for 变量 in 列表|元组|字典 %}
{% endfor %}
允许使用 for 提供的内置变量 - forloop
1、forloop.counter
记录当前循环的次数,从1开始
2、forloop.first
是否是第一次循环(第一项)
3、forloop.last
是否是最后一次循环(最后一项)
2、if
1、
{% if 条件%}
满足条件要运行的内容
{%endif%}
条件中允许使用 比较运算符(> ,<,>=,<=,==,!=),逻辑运算符(not,and,or)
注意:and和or不能同时出现
2、
{% if 条件 %}
满足条件运行的内容
{% else %}
不满足条件运行的内容
{% endif %}
3、
{% if 条件1 %}
满足条件1运行的内容
{% elif 条件2 %}
满足条件2运行的内容
{% elif 条件3 %}
满足条件3运行的内容
{% else %}
以上条件都不满足的时候运行的内容
{% endif %}
3、过滤器
1、作用:
过滤数据,在显示变量之前。允许对数据进行筛选或改变
2、语法
{{变量|过滤器:参数}}
3、简单的过滤器
1、{{value|upper}}
将value变为大写字符
2、{{value|lower}}
将value编写小写字符
3、{{value|add:num}}
将num累加到value之后
4、{{value|floatformat:n}}
将value四舍五入到n位小数
5、{{value|truncatechars:n}}
将字符串截取到n位(包含...)