在一篇Django教程中,我看到有人写道:

class GetUserProfileView(APIView):
     def get(self, request, format=None):
          # user profile get code

class UpdateProfileView(APIView):
     def put(self, request, format=None):
          # user profile put code

而对我这样一个初学者来说,将其组织在一个视图中似乎更有意义:

class ProfileView(APIView):
     def get(self, request, format=None):
          # user profile get code

     def put(self, request, format=None):
          # user profile put code

有没有理由将它们组织到不同的视图中,或者教程制作人没有经验?

推荐答案

通常这样的视图确实是分组的,这个概念被称为ViewSet [drf-doc],它可以分组a list(通常是没有对象的任何"键"的GET请求)、retrieve(通常是带有键的GET请求,我们可以为其检索项)、create(通常是POST请求)、update(通常是PUT请求)、partial_update(通常是补丁请求)和destroy(通常是DELETE请求).

通常情况下,只有在检索对象、序列化这些对象并返回这些对象这样的"默认"场景时,才会使用APIView.所以,只有当你做一些更复杂的事情时.人们通常使用不同的APIView例如,如果串行器或其他逻辑根据场景而不同,在这种情况下,通常逻辑将在场景之间消除歧义,这通常使其不如将其分成不同的类.

Python相关问答推荐

大Pandas 胚胎中产生组合

运行Python脚本时,用作命令行参数的SON文本

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

为什么默认情况下所有Python类都是可调用的?

我们可以为Flask模型中的id字段主键设置默认uuid吗

OR—Tools CP SAT条件约束

Pandas:将多级列名改为一级

创建可序列化数据模型的最佳方法

通过ManyToMany字段与Through在Django Admin中过滤

如何使regex代码只适用于空的目标单元格

Matplotlib中的字体权重

python sklearn ValueError:使用序列设置数组元素

巨 Python :逆向猜谜游戏

polars:有效的方法来应用函数过滤列的字符串

有没有办法在不先将文件写入内存的情况下做到这一点?

裁剪数字.nd数组引发-ValueError:无法将空图像写入JPEG

Django在一个不是ForeignKey的字段上加入'

删除Dataframe中的第一个空白行并重新索引列

pytest、xdist和共享生成的文件依赖项

Python:在cmd中添加参数时的语法