为了更好的学习效果,请搭配视频教程一起学习:

【免费】Python全栈开发系列教程 - 网易云课堂​study.163.com

模板

在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。DTLDjango 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的异常。

为了更好的学习效果,请搭配视频教程一起学习:

【免费】Python全栈开发系列教程 - 网易云课堂​study.163.com

binarytreenode”使用 类 模板 需要 模板 参数列表_0基础掌握Django框架(7)Django模板介绍...相关推荐

  1. Django框架(24.Django中的模板的自定义过滤器)

    自定义过滤器 过滤器就是python中的函数,注册后就可以在模板中当作过滤器使用 Django中的使用模板的自定义过滤器 在项目的应用下创建templatetags​​​​​​的Python的包 然后 ...

  2. Django框架(8.Django中的模板文件的使用和模板变量的简单使用)

    为什么使用模板 通过视图可以给用户返回一些字符串等等, 那如何向请求者返回一个漂亮的页面呢? 肯定需要用到html.css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为 ...

  3. Django框架(23.Django中的模板的标签、变量、过滤器和注释)

    模板 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观 ...

  4. Django框架学习 —9模板详解 -- DTL

    作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器 模板致力于表达外观,而不 ...

  5. Django框架(19.Django中获取url的参数(位置参数以及关键字参数))

    捕获url参数 进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数. 位置参数 位置参数,参数名可以随意指定   ...

  6. Django框架(3.django设计模型类、模型类生成表、ORM框架简介)

    ORM框架简介 O是object,也就类对象的意思, R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思, M是mapping,是映射的意思.在ORM框架中,它帮我们把类和数据表进 ...

  7. html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...

    1. 模板介绍 1.1 模板的功能 产生html,控制页面上展示的内容.模板文件不仅仅是一个html文件. 模板文件包含两部分内容: 静态内容:css.js.html. 动态内容:用于动态去产生一些页 ...

  8. Django框架(25.Django中的模板继承以及HTML转义)

    模板继承 模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量. 典型应用:网站的头部.尾部信息. 父模板 如果发现在多个模板中某些内容相同,那就应该把这段内容定义到父模板中. ...

  9. Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)

     Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询.    不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...

最新文章

  1. 零基础自学python的app-编程零基础应当如何开始学习 Python?
  2. 三基站定位几何精度因子的简便运算
  3. [LeetCode] Invert Binary Tree - 二叉树翻转系列问题
  4. 云计算炒作多过采纳 普及仍需时日
  5. LINUX framebuffer
  6. onmousedown活用之碰撞效果
  7. 工作量不断增加的微软Azure,正缩小与亚马逊AWS的差距
  8. 【软件测试】测试驱动开发
  9. 1982:【19CSPJ普及组】数字游戏 scratch C++
  10. Docker容器学习
  11. 华为天才少年一人打造自动驾驶!
  12. c语言const限制什么,[C语言]类型限定词const解析
  13. Idea设置背景色设置为护眼色
  14. 批量查询手机号归属地
  15. php格式转为jpg格式,php实现图片格式转换
  16. 中央气象台气象监测数据爬取Python实战分析
  17. 人生苦短,你一定要成为你自已想成为的那个人
  18. MySQL创建触发器的时候报1419错误( 1419 - You do not have the SUPER privilege and binary logging is enabled )
  19. 数据分析Power BI数据建模教程(四)——如何创建计算度量值和计算表
  20. 购买实体网站服务器,实体服务器购买

热门文章

  1. maven asm 依赖配置_Maven教程_v20201119
  2. 四边形可以分为几类_展台设计搭建可以分为哪几类?
  3. python如何限制字符串长度_Python uuid4,如何限制唯一字符的长度 - python
  4. python psutil替代_Python2.7 psutil模块
  5. 立冬节气,设计师需要的PNG素材已为你备好
  6. 潮流趋势UI素材|梯度半透明、透明套件
  7. 「PPT模板」 商务UI风格
  8. UI实用素材模板|app底部导航栏的图标可临摹素材,教你分析!
  9. 网页ui设计模板素材|液体流动效果!
  10. mysql5.5索引如何定义_MySQL5.5索引数在InnoDB引擎内与索引数在mysql中定义的数量是不一致问题-阿里云开发者社区...