【问题标题】:Django: Since it is not strictly MVC, but MTV, what is "view"? [duplicate]Django:既然严格来说不是MVC,而是MTV,那什么是“视图”? [复制]
【发布时间】:2013-12-21 09:16:11
【问题描述】:

我是 Django 的新手,我读到了两篇关于它的有点矛盾的东西。一位消息人士说它基于 MVC(模型-视图-控制器)风格,其他人则认为它是 MTV(模型-模板-视图)。我把它理解为MTV。我的观点是正确的吗?没有双关语。

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

Django 文档说:

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

对我来说,这听起来像是一个带有模板的函数。

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

【问题讨论】:

  • Django 视图是控制器,除了 Django 的开发人员之外的每个人都理解 MVC。
  • 伍布尔,ty。我搜索了 django mvc,但不知何故这不在前 5 个结果中。连前十都进不了,自然错过了。
  • 另外,我尝试添加“MTV”标签,但我没有足够的声誉来做到这一点。令人惊讶的是,它并不在系统中。

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


【解决方案1】:

我认为您对模式、样式、类比和首字母缩写词感到困惑。

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

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

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

那就是 Django。如果这对您来说显然是某种首字母缩略词模式,请随意考虑...

【讨论】:

  • 完全欢迎这种对流行语的回避。 =D
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2015-02-11
    • 2020-08-26
    • 2011-01-27
    相关资源
    最近更新 更多