我的控制器逻辑在 Django 中放在哪里?
Where does my controller logic go in Django?
我有 iOS 的 Django 背景。作为应用程序开发人员,我习惯于明确定义 MVC 架构。我的故事板包含我的观点。我的视图控制器包含我的逻辑,我的模型存在于对象关系映射器 (ORM) 框架或数据库中。
在网络上,责任的分离似乎不太明确。当然,存在数据库和 ORM。 HTML 好像是我的看法。 Django 模型似乎就是这样。但是控制器在哪里?
我的业务逻辑在哪里?
正如 Django FAQ 本身所指出的,Django 并没有完全遵循 MVC 方法,至少不是以直接的方式。 (他们争辩说 Django 本身就是控制器,但我并不是这样看待 MVC 的。)
Django中的"controllers"基本上就是Django所说的视图。所以你有你的模型 类,这显然是 M。 templates/HTML 基本上是 MVC 中的 V。 Django 视图(函数或 类)是 运行 对特定 URL 的有效回调,它们往往是很多逻辑所在的位置。因此,例如,当有人向 /foo/bar 发出 GET 请求时,您将有一个名为 get_foo_bar 的 Django 视图 运行,并且 Django 视图实际上成为 MVC 中的 C。
长话短说,您的逻辑通常会出现在您的 Django 视图中。
Django 的控制器存储在 views.py 文件中,这种命名方式会让具有某种 MVC 背景的新手感到困惑,您可以在这里阅读:https://docs.djangoproject.com/en/1.8/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names
我有 iOS 的 Django 背景。作为应用程序开发人员,我习惯于明确定义 MVC 架构。我的故事板包含我的观点。我的视图控制器包含我的逻辑,我的模型存在于对象关系映射器 (ORM) 框架或数据库中。
在网络上,责任的分离似乎不太明确。当然,存在数据库和 ORM。 HTML 好像是我的看法。 Django 模型似乎就是这样。但是控制器在哪里?
我的业务逻辑在哪里?
正如 Django FAQ 本身所指出的,Django 并没有完全遵循 MVC 方法,至少不是以直接的方式。 (他们争辩说 Django 本身就是控制器,但我并不是这样看待 MVC 的。)
Django中的"controllers"基本上就是Django所说的视图。所以你有你的模型 类,这显然是 M。 templates/HTML 基本上是 MVC 中的 V。 Django 视图(函数或 类)是 运行 对特定 URL 的有效回调,它们往往是很多逻辑所在的位置。因此,例如,当有人向 /foo/bar 发出 GET 请求时,您将有一个名为 get_foo_bar 的 Django 视图 运行,并且 Django 视图实际上成为 MVC 中的 C。
长话短说,您的逻辑通常会出现在您的 Django 视图中。
Django 的控制器存储在 views.py 文件中,这种命名方式会让具有某种 MVC 背景的新手感到困惑,您可以在这里阅读:https://docs.djangoproject.com/en/1.8/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names