【问题标题】:Where does my controller logic go in Django?我的控制器逻辑在 Django 中去哪里了?
【发布时间】:2016-01-15 13:03:02
【问题描述】:

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

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

我的业务逻辑在哪里?

【问题讨论】:

    标签: python django model-view-controller architecture


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-01
        • 2011-06-28
        • 2010-10-13
        • 2016-02-22
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        相关资源
        最近更新 更多