本文共 2022 字,大约阅读时间需要 6 分钟。
模板引擎是模板响应的后端
settings.py文件中对模板引擎进行配置 (BACKEND字段)
模板目录在列表中的顺序是搜索模板的顺序TEMPLATES = [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, "msgapp/templates")],#模板目录'APP_DIRS': True,'OPTIONS': { 'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},]
get_template(template_name) -> Template类
在模板目录列表中,依次查找某个模板,直到找到并返回Template类 如果未找到模板,则抛出TemplateDoesNotExist异常 template_name : 待查找模板的名称 select_template(template_name_list) -> Template类 与get_template()相似,依次按照模板列表查找某个模板,直到找到第一个 并返回Template类,未找到则抛出TemplateDoesNotExist异常 · template_name_list : 待查找模板名称列表Template.render(context, request) -> HTML字符串
模板对象的.render()方法用于将模板结合内容渲染成HTML字符串 · context : 字典类型,用于加载到模板中的内容 · request : HTTP请求 渲染render() 将模板和内容整合到一起,返回HTML字符串try: tpl = get_template("MsgSingleWeb.html")except: return HttpResponseNotFound("自定义的404
")html = tpl.render({ "data":datalist}, request)return HttpResponse(html)
步骤1:指定Template:定义一个Template类
步骤2:进行渲染:通过Context类或字典类def pgproc(request): template = Template("这个程序的名字是 { { name }}
") context = Context({ "name" : "实验平台"}) return HttpResponse(template.render(context))
模板语言:指导模板加载数据方式的工具
DTL: Django Template Language 参考官网• 注释 comment
• 变量 variable • 标签 tags • 过滤器 filter注释
单行注释: {# 这是单行注释 #} 多行注释: {% comment %} 这是多行注释第一行 这是多行注释第二行 {% endcomment %} • 变量 { { name }} 如果变量本身是字典类型、列表类型或对象,用.获取元素 { { adict.key }} { { alist.0 }} { { aobject.attribute }} • 标签 {% 关键字引导的程序逻辑 %} 标签中的关键字包括 for, endfor, block, endblock, if, elif, else, endif, in, trans, as, with, extends 等{ % for line in data %} { { line.time }} { { line.userA }} { { line.msg }}{ % endfor %}
• 过滤器
{ { name|过滤标签 }} { { name|f1|f1 }} 过滤器对变量的值进行修饰 lower, escape, linebreaks, date, length等{ { name|lower }}{ { my_date|date:"Y-m-d" }}
转载地址:http://ifkrn.baihongyu.com/