我的控制器逻辑在哪里进入Django?

时间:2015-10-16 17:24:26

标签: python django model-view-controller architecture

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

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

我的业务逻辑在哪里?

2 个答案:

答案 0 :(得分:2)

正如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视图中。

答案 1 :(得分:1)

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