Django 中的 模板(Templates)
1.什么是模板
模板就是要动态呈现给用户的网页内容
模板的本质就是网页 - 前后端结合的网页
2.模板的设置
在 settings.py中, TEMPLATES 变量
1.BACKEND : 指定模板的搜索引擎
2.DIRS : 指定模板的存放目录们
如果DIRS中为空的话,那么Django会自动的到每个应用中搜索一个叫 templates 的目录作为模板存放目录
3.APP_DIRS
True : 优先从DIRS指定的目录中查找模板,如果没找到的话,再搜索应用中的templates目录
3.模板的加载方式
1.使用 loader 获取模板,通过HttpResponse进行响应
from django.template import loader
def index_views(request):
#1.通过loader加载模板
t = loader.get_template("模板名称")
#2.将模板渲染成字符串
html = t.render()
#3.通过HttpResponse响应给客户端
return HttpResponse(html)
2.使用render直接加载并返回模板
def index_views(request):
return render(request,'模板名称')
4.模板的语法
1.变量
1.作用:允许将后端的数据传递给模板在模板中进行显示
2.Django中允许作为变量传递给模板的数据类型
字符串,数字,列表,元组,字典,函数,对象
3.变量的语法
变量们必须要封装到字典中才能传递给模板
1.使用 loader 加载模板
dic = {
'变量1':'值1',
'变量2':'值2',
... ...
}
t=loader.get_template('模板名称')
# 渲染成字符串时需要传递变量字典到模板中
return HttpResponse(t.render(dic))
2.使用render加载并返回模板
dic = {
'变量1':'值1',
'变量2':'值2',
}
return render(request,'模板名称',dic)
4.在模板中使用变量
{{变量名}}
2.标签
1.作用
将服务器端的功能嵌入到模板中
2.语法
{% 标签内容 %}
3.标签详解
1.comment 标签
{% comment %}
{% endcomment %}
作用:在服务器端就被注释的内容,不会被渲染到客户端的
2.for 标签
作用:循环遍历 列表,字典,元组
语法:
{% for 变量 in 列表|字典|数组 %}
{% endfor %}
循环中允许使用 forloop 内置变量来获取循环相关的信息
forloop.counter : 记录当前循环的次数(从1开始计算)
forloop.first : 判断是否为第一次遍历
forloop.last : 判断是否为最后一次遍历
3.if标签
1.if
{% if 条件 %}
条件满足时要执行的内容
{% endif %}
2.if ... else
{% if 条件 %}
满足条件时执行的内容
{% else %}
不满足条件时执行的内容
{% endif %}
3.if...elif...else
{% if 条件1 %}
满足条件1执行的内容
{% elif 条件2 %}
或满足条件2执行的内容
{% elif 条件3 %}
或满足条件3执行的内容
{% else %}
或都不满足时执行的内容
{% endif %}