Django中,模型(models),视图(views)和模板的区别和应用

python 专栏收录该内容
16 篇文章 0 订阅

模型

任何应用程序的基本,不管是不是Web应用,都是它所展现、收集和修改的信息。因此,若将应用程序分层,模型(model)将是最底部的一层,它是基础。视图和模板可以根据数据进出模型的方式以及表现的形式任意替换,但模型却相对稳定得多。

从设计整个Web应用的角度来说,模型可能是最容易领会却也是最难掌握的部分。在面向对象系统里对一个现实问题进行建模相对来说通常不难,但是对大流量的网站来说,最符合实际的模型却不一定总是最高效的。

模型里有很多潜在的陷阱,其中一个就是在应用程序部署后修改模型的代码。虽然表面上你“只是在修改代码”,但实际上确实在修改底层的数据库模式,这经常会对已经存储在数据库里的数据产生不良的副作用。在后面设计示例应用的章节里,我们遇到很多这类现实问题。

视图

视图(view)组成了Django应用程序里很多(有时候几乎是全部)的逻辑。它们的定义实际上却很简单:它们是链接到一个或多个定义URL上的Python函数,这些函数都返回一个HTTP响应对象。在Django的HTTP机制两端之间要执行什么操作完全都在你的控制之下。实际上,在这一步通常只有一些简单的任务需要完成,例如显示一个或是一列从模型里取得的对象,或者是往模型里添加这样的新对象,加上一些额外的工作诸如检查应用程序用户验证的状态并决定是允许还是拒绝访问。

Django为这类任务提供了很多方便快捷的帮助函数,但是你也可以选择自己编写一切来完全地控制整个过程,或是大量使用这些快捷方式来进行快速建模和开发,抑或是两者结合。灵活和强大两者兼备就是视图的特点了。

模板

我们刚刚说视图的作用是负责显示来自模型的对象。这并非百分之一百的正确。如果说视图方法只是返回一个HTTP响应的话,那么是正确的—你可以在Python里写出一个字符串然后返回它,这样的做法也不算是很落伍。只不过在绝大多数情况下,这样做的效率实在太低,所以在这里引入一个抽象层非常重要。

所以大多数Django程序员都使用它的模板语言来渲染HTML页面。基本上,模板就是一些输出动态值的经过特殊格式化的HTML文本,支持简单的逻辑结构如循环等。当一个视图要返回一个HTML文档时,它通常会指定一个模板,提供给它所要显示的信息,并在响应里使用模板渲染的结果。

虽然HTML是最常见的格式,模板实际上并不一定要它—模板可以生成任何文本格式,如CSV,甚至email消息正文。重要的是它们让一个Django项目能够把数据的表示和决定显示什么数据的视图代码区分开来。


  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值