django控制器在views.py中是什么

2024-02-17

我已经遵循了几个 django 教程。我不知道为什么控制器存储在名为views.py 的文件中。我对这个文件名感到困惑。我正在寻找 MVC 开发。 django 中还有其他用于“真实”控制器的文件吗?


名字views.py是一个错误

从架构的角度来看,调用views.py该模块中的函数接收 HTTP 请求并生成 HTTP 响应。

  • 这样的模块显然是 MVC 意义上的控制器。 (作为比较,Spring 框架中的等效功能位于带有注释的类中@RestController or @Controller.)

  • 这样的模块也是一个休息适配器如果您使用端口和适配器架构风格(又名六角形架构)。

  • 该模块处理输入输出数据(请求-响应),但它是not显示给用户的视图的表示。如果没有,那么 http DELETE 端点怎么样(@api_view(['DELETE']))?触发后台处理且与 Web UI 显示内容无关的 http POST 端点怎么样?中的函数views.py是用户操作的“处理程序”(即控制器MVC 中),而不是 UI 数据的表示。

我明白那个views.py是一种约定,您可以使用其他名称,但是一旦教程示例和其他文档使用该名称,它就会保留。

另一个错误是当教程像this https://docs.djangoproject.com/en/4.0/topics/http/views/使用名称views.py作为所有 http 端点的单一位置。名字views.py太笼统了,其想法本身就是在邀请违反单一责任原则(SRP)。

即使是简单的教程示例,也应该使用更好的名称。例如:

  • 如果您正在处理处理以下内容的端点customer功能,调用它视图_客户.py or customer_views.py(或者更好的是,客户控制器.py如果你敢于打破惯例并按其本来面目称呼它)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django控制器在views.py中是什么 的相关文章

随机推荐