Django的模板引擎与模板使用

14 篇文章 0 订阅

Django的模板引擎

模板引擎是模板响应的后端

模板引擎的配置

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("<h1>自定义的404</h1>")
html = tpl.render({"data":datalist}, request)
return HttpResponse(html)

模板使用步骤

步骤1:指定Template:定义一个Template类
步骤2:进行渲染:通过Context类或字典类

def pgproc(request):
	template = Template("<h1>这个程序的名字是 {{ name }}</h1>")
	context = Context({"name" : "实验平台"})
	return HttpResponse(template.render(context))

Django模板语言入门

模板语言:指导模板加载数据方式的工具
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 %}
<tr>
	<td>{{ line.time }}</td>
	<td align="center">{{ line.userA }}</td>
	<td>{{ line.msg }}</td>
</tr>
{% endfor %}

• 过滤器
{{ name|过滤标签 }} {{ name|f1|f1 }}
过滤器对变量的值进行修饰
lower, escape, linebreaks, date, length等

{{ name|lower }}
{{ my_date|date:"Y-m-d" }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值