我的控制器逻辑在 Django 中去哪里?

Mos*_*she 9 python architecture django model-view-controller

我是从 iOS 背景转向 Django 的。作为一名应用程序开发人员,我习惯于明确定义的 MVC 架构。我的故事板包含了我的观点。我的视图控制器包含我的逻辑,我的模型存在于对象关系映射器 (ORM) 框架或数据库中。

在网络上,责任的分离似乎不太明确。当然,数据库和 ORM 是存在的。HTML似乎是我的观点。Django 模型似乎就是这样。但控制器在哪里?

我的业务逻辑在哪里?

btm*_*lis 10

正如Django FAQ本身指出的那样,Django 并不完全遵循 MVC 方法,至少不是以一种直接的方式。(他们认为 Django 本身就是控制器,但这并不是我对 MVC 的真正看法。)

Django 中的“控制器”基本上就是 Django 所说的视图。所以你有你的模型类,显然是 M。模板/HTML 基本上就是 MVC 中的 V。Django 视图(函数或类)实际上是针对特定 URL 运行的回调,并且它们往往包含大量逻辑。例如,您将有一个名为 get_foo_bar 的 Django 视图,当有人向 /foo/bar 发出 GET 请求时,该视图就会运行,并且 Django 视图实际上成为 MVC 中的 C。

长话短说,您的逻辑通常出现在您的 Django 视图中。