03.django学习笔记(模板)

模板笔记介绍

在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的 页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。目前市面上有非常多 的模板系统,其中最知名最好用的就是DTL和Jinja2。 DTL 是 Django Template Language 三个单 词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但 是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。因此 建议大家学习好DTL。

DTL与普通的HTML文件的区别:

DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进 去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。

渲染模板:

渲染模板有多种方式。这里讲下两种常用的方式。

  1. render_to_string :找到模板,然后将模板编译后渲染成Python的字符串格式。最后再通 过 HttpResponse 类包装成一个 HttpResponse 对象返回回去。示例代码如下:
 from django.template.loader import render_to_string 
 from django.http import HttpResponse 
 def book_detail(request,book_id):     
 	html = render_to_string("detail.html")     
 	return HttpResponse(html)
  1. 以上方式虽然已经很方便了。但是django还提供了一个更加简便的方式,直接将模板渲染成字 符串和包装成 HttpResponse 对象一步到位完成。示例代码如下:
from django.shortcuts import render 
def book_list(request):     
 	return render(request,'list.html')

模块查找路径配置:

在项目的 settings.py 文件中。有一个 TEMPLATES 配置,这个配置包含了模板引擎的配置,模板 查找路径的配置,模板上下文的配置等。模板路径可以在两个地方配置。

  1. DIRS :这是一个列表,在这个列表中可以存放所有的模板路径,以后在视图中使用 render 或者 render_to_string 渲染模板的时候,会在这个列表的路径中查找模板。 2. APP_DIRS :默认为 True ,这个设置为 True 后,会在 INSTALLED_APPS 的安装了的 APP 下 的 templates 文件加中查找模板。 3. 查找顺序:比如代码 render(‘list.html’) 。先会在 DIRS 这个列表中依次查找路径下有没有 这个模板,如果有,就返回。如果 DIRS 列表中所有的路径都没有找到,那么会先检查当前这 个视图所处的 app 是否已经安装,如果已经安装了,那么就先在当前这个 app 下 的 templates 文件夹中查找模板,如果没有找到,那么会在其他已经安装了的 app 中查找。 如果所有路径下都没有找到,那么会抛出一个 TemplateDoesNotExist 的异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值