Django:既然它不是严格的MVC,而是MTV,什么是“视图”?

时间:2013-12-04 18:22:13

标签: django model-view-controller model django-views

我是Django的新手,我读到了两个有些矛盾的事情。一位消息人士称,它基于MVC(模型 - 视图 - 控制器)风格,其他人则认为它是MTV(模型 - 模板 - 视图)。我把它理解为MTV。在我看来,我是否正确?没有双关语。

如果是的话,我仍然对“观点”的两个概念感到困惑,因为它们在两种情况下是不同的。

Django documentaion说:

  

视图是Django应用程序中网页的“类型”,通常用于特定功能并具有特定模板。

对我而言,这听起来像是一个带模板的功能。

有没有人清楚了解情况?一个好的,越简单越好,解释。也许有些比喻?

2 个答案:

答案 0 :(得分:2)

我认为你对模式,风格,类比和首字母缩略词感到困惑。

Django有一个名为urls.py的文件,它将传入的请求映射到视图。视图是一个函数(或实现某些方法的类),其返回值(通常为HTTPResponse)被发送回浏览器。通常,但不一定总是,视图使用模板来产生返回值。

Django还有一个ORM层(Python类和数据库表之间的映射),这些表示数据库表的类称为“模型”。视图通常需要来自数据库的信息,并且它们会调用模型上的函数来获取它。

Django的另一个核心部分是表单处理。视图通常需要从请求中获取参数(例如从提交的表单中获取),并且它们使用表单。

这就是Django。如果这显然是一些缩写模式给你,请随意考虑......

答案 1 :(得分:0)

视图是我们用来编写业务逻辑的地方。业务逻辑可以写在项目的任何地方,但建议在视图中写入 视图函数或简称视图只是一个Python函数,它接受Web请求并返回Web响应。此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像。 。 。或者其他什么,真的。视图本身包含返回该响应所需的任意逻辑。只要在Python路径上,此代码就可以存在于您想要的任何地方。没有其他要求 - 没有“魔力”,可以这么说。为了将代码放在某处,惯例是将视图放在名为views.py的文件中,放在项目或应用程序目录中。
浏览文档以获得一个清晰的想法。

https://docs.djangoproject.com/en/1.6/topics/http/views/#writing-views