005. 模板

深入学习Django,强烈推荐视频教程《超详细讲解Django打造大型企业网站》

==========================我是华丽的分割线===================================

模板

模板简单来说就是 html 页面,也是我们前面提到的template这部分,当然肯定和 html 还是有区别的,模板是带有特殊语法 DTL (django template language) 的 html,有过其他开发语言经验的一下子就会懂了,实际上这个模板是可以传值进去的动态网页。


渲染模板

渲染模板有五种方式,我这里只介绍两种常用的方式

render_to_string

from django.template.loader import render_to_string
from django.http import HttpResponse
def index(request):
    html = render_to_string("index.html")
    return HttpResponse(html)

render

from django.shortcuts import render
def index(request):
    return render(request,'index.html')
这两种有什么区别呢?

render 方法在 shortcuts 目录下,已经被 django 封装过了,其实底层也调用了 render_to_string 这个方法,但是 render 可以防止 csrf 攻击,开发者直接调用就可以了,不用再去深究如何防止 csrf 攻击的问题。 render_to_string 方法 来自 django.template.loader 包,相比较 render 的使用没有那么方便,如果不考虑 csrf 的问题,其实两个方法是没什么区别的。


模板路径

这是个很重要的话题,理解了可以节省很多时间。

项目中的 settings.py 文件下的 TEMPLATES 配置项中,可以配置模板路径和上下文。

1. DIRS 列表中存放了所有的模板路径。

2. APP_DIRS 设置为 True,django 会在 INSTALLED_APPS 下找 templates 文件夹查找 html 模板 。

django 查找的路径,首先去 DIRS 列表中查找,如果没有,再去 INSTALLED_APPS 下面的当前 app 查找,如果还没有,就会却其他 INSTALLED_APPS  的 app 中查找,如果还没有的话,直接抛 TemplateDoesNotExsit 异常。


==========================我是华丽的分割线===================================

深入学习Django,强烈推荐视频教程《超详细讲解Django打造大型企业网站》


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值