gpt4 book ai didi

django - 如何将 API 正确匹配到 Django 中的 View

转载 作者:行者123 更新时间:2023-12-01 22:04:59 25 4
gpt4 key购买 nike

我的问题归结为 Django 中 REST 和 View 的最佳实践之一。我正在为我当前的项目重新设计 REST api,其中包括稍微重新设计我们的 View (传统 MVC 中的 Controller )。目前,一切都通过 POST 请求进行隧道传输,甚至应该是简单的 GET 请求也是如此。

从休息的角度来看,应该返回一个包含所有作业的列表,其中的 URL 如下:

api/jobs/

单个作业(ID 为 1)应该通过以下方式检索:

api/jobs/1

最后这应该返回属于作业 1 的所有任务

api/jobs/1/tasks/

这是我在新系统中使用的理念,但我对实现感到困惑。这两者是否应该在 Django 中拥有自己的 View ,或者应该一个 View 处理两者。

目前我正在使用一个 View ,所有相关的 url 都路由到它,逻辑如下;

def get(self, request, id=None, task_id=None):

if id is None:
return Job.objects.all() # This will be the LIST'
if task_id is not None:
return Job.objects.get(id=id).task_set.all()
return Job.objects.get(id=id)

如果增加更多的复杂性,这似乎会导致非常复杂和冗长的 View 。如果我想将类似的逻辑添加到其他资源的任务逻辑中,我会继续添加到 View 中,还是应该让每个资源都有自己的 View ?

最佳答案

存在 Rest Framework为 Django 提供休息 View 、路由器、序列化程序等。您应该主要查看 Viewsets and routers | Rest Framework这正是您所需要的。

关于django - 如何将 API 正确匹配到 Django 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52434288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com