一、Django的模板引擎简介
1.模板引擎是模板响应的后端;
2.模板引擎:django,jinja2(第三方);
二、Django的模板引擎配置
在setting.py文件中的BACKEND对模板引擎进行配置。见下图。
三、模板的查找
- get_template(template_name)
返回Template类 ,template_name为待查找的模板的名称;
在模板目录列表中,依次查找某个模板,直到找到并返回 Template 类,如果未找 到则抛出TemplateDoesNotExist异常。 - select_template(template_name_list)
返回Template类,template_name_list为待查找的模板名称列表;与get_template()相似,但返回的是第一个查找到的模板。
四、模板的渲染
1、使用方法:Template.render(context,request)
返回HTML字符串,其中context:字典类型,用于加载到模板中的内容;request:Http请求
2、举例:
#方法一
from django.template import Template,Context
def pgproc(request):
template = Template("<h1>这个程序的名字是{{ name }}</h1>")
context = Context({"name":"实验平台"})
return HttpResponse(template.render(context))
#方法二
from django.shortcuts import render
return render(request,"proc_name.html",{"name":'实验平台'}) #新建proc_name.html文件在templates目录下
#方法三
from django.template.loader import get_template
template = get_template("proc_name.html")
html = template.render({"name":'实验平台'},request)
return HttpResponse(html)
五、模板语言DTL
DTL是Django template Language的简写,主要包括注释、变量、标签、过滤器。
1、注释
单行注释:{# 注释 #}
多行注释:{% comment %} 注释 {% endcomment %}
2.变量
用 {{ name }}表示
注意:如果变量本身是字典类型、列表类型或对象,用.获取元素,如{{ adict.key }},{{ alist.0}}等。
3.标签
用{% 关键字引导的程序逻辑 %}
标签中的关键字包括 for , endfor , block , endblock , if , elif , else , endif , in , trans , as , with , extends 等
4.过滤器
{{ name|过滤标签 }}
过滤器对变量的之进行修饰:lower,escape,linebreaks,date,length等
如 {{ name|lower }}进行小写处理;{{ my_date|date:“Y-m-d” }}进行格式化处理。