django - 使用 Django Rest Framework 实现 MVC 模式
问题描述
我想知道如何在 Django Api 项目上实现 MVC 模式,当我启动 django 项目时,它给了我 apps.py、admin.py、models.py 和 views.py,我了解模型,应该是“M”,视图是“V”,但是当我像 api 一样使用项目时,视图将是 Angular 或 React 应用程序,所以我把逻辑放在哪里?将“C”控制器放在 django rest 框架项目上的正确位置在哪里,是在 views.py 上吗?
解决方案
您需要了解 Web 服务(您将使用 实现Django
)和您的客户端应用程序(您将使用 实现Angular
)是完全不同的应用程序,它们不应相互依赖。这些应用程序将拥有自己的Models
,Views
和Controllers
.
如果我们正在谈论一些您需要存储在后端某处的业务逻辑,那么您可以使用一种方法,您将拥有一个额外的级别(通常,人们称之为它services.py
),您将从该层导入代码views.py
并且只调用它因为你的观点应该尽可能保持简洁。
在一个理想的情况下,特别是在开始时,我猜,你不会有一些棘手的逻辑,而且大多数情况下你API
会看起来很简单CRUD
,所以在这种情况下,你甚至不需要在你可以使用rest framework
ViewSets
的地方存储额外的逻辑是并将一些小片段存储在utils.py
.
底线是-您不了解基本原理,这就是您问错问题的原因。而且你现在不需要它。只需去编写您的应用程序并阅读有关您正在使用的框架的文档,最终您就会理解这个主题。
推荐阅读
- sql - 如何向现有事实表添加列以及如何向现有事实表添加数据?
- java - 在 ArrayList 中查找重复项
- python-3.x - 试图访问预测掩码 Mask-RCNN 的位置或坐标
- google-apps-script - 停止脚本再次创建相同文件或/和覆盖现有文件
- rabbitmq - 在rabbit mq中配置铲子时访问目标虚拟主机被拒绝
- apache-kafka - 融合模式注册表划分后端存储Kafka主题
- r - 如何将向量的所有元素合并为R中的一个元素?
- reactjs - 如何将 Draft js 中上传的图像存储到 Firestore (Reactjs)?
- django - 将表单重定向到 Django 中的相同 URL
- python - 从列中删除列表元素的最有效方法