模型 - 视图 - 控制器设计模式
MVC作为一个概念已经有很长一段时间了,但是自从互联网出现以来,MVC已经呈现指数增长,因为它是设计客户端 - 服务器应用程序的最佳方式。 所有最好的Web框架都是围绕MVC概念构建的。 如果你没有使用MVC来设计网络应用程序,那么就会冒着发生火焰战争的风险。 作为一个概念,MVC的设计模式很容易理解:
-
模型(M)是您的数据的模型或表示。 这不是实际的数据,而是数据的接口。 该模型允许您从数据库中获取数据,而无需知道底层数据库的复杂性。 该模型通常还会为您的数据库提供一个抽象层,以便您可以在多个数据库中使用相同的模型。
-
视图(V)就是你所看到的。 这是您的模型的表示层。 在您的计算机上,视图是您在浏览器中看到的Web应用程序或桌面应用程序的UI。 该视图还提供了一个用于收集用户输入的界面。
-
控制器(C)控制模型和视图之间的信息流。 它使用编程逻辑来决定通过模型从数据库中提取哪些信息,以及传递给视图的信息。 它还通过视图从用户获取信息,并实现业务逻辑:通过更改视图或通过模型修改数据,或两者都有。
难以解决的是对每一层实际发生的不同解释 - 不同的框架以不同的方式实现相同的功能。 一个框架“大师”
可能会说某个功能属于某个视图,而另一个可能会强烈地捍卫它在控制器中的需要。
你作为一个出色的程序员完成了任务,不必关心这个,因为最终没关系。 只要您了解Django如何实现MVC模式,您就可以自由地继续前进,并完成一些真正的工作。 尽管在评论主题中观看火焰战争可能是一个非常有趣的分心。
Django密切关注MVC模式,但是它在实现中使用自己的逻辑。 由于“C”是由框架本身处理的,Django中的大部分交互发生在模型,模板和视图中,Django通常被称为MTV框架。 在MTV发展模式中:
-
M代表“模型”数据访问层。 该层包含数据的所有内容:如何访问数据,如何验证数据,具有哪些行为以及数据之间的关系。 我们将在第4章仔细研究Django的模型。
-
T代表“模板”表示层。 该层包含与演示相关的决定:应该如何在网页或其他类型的文档上显示内容。 我们将在第3章探索Django的模板。
-
V代表“查看”业务逻辑层。 该图层包含访问模型的逻辑,并遵循适当的模板。 你可以把它看作模型和模板之间的桥梁。 我们将在下一章中查证Django的试图。
这可能是Django命名中唯一不幸的地方,因为Django的试图更像MVC中的控制器,而MVC的试图实际上是Django中的Template。 起初有点混乱,但是你真的不需要去关心它,作为程序员完成工作就可以了。 对我们来说,这只是一个问题。 哦,当然,有flamers。
下一步是什么?
现在你已经安装了所有的东西,并且开发服务器正在运行,你可以继续使用Django的视图,并学习使用Django来提供Web页面的基础知识。