django 中不同的请求接口在generics中使用

22 阅读1分钟

在开的过程中优先考虑以下四个视图

下面的方法中包含了包含了get/post/put(patch)/delete 的方法,并可以通过重写方法来实现不同的逻辑。

  1. ListCreateAPIView - 列表和创建视图
  2. RetrieveUpdateAPIView - 详情和更新视图
  3. RetrieveDestroyAPIView - 详情和删除视图
  4. RetrieveUpdateDestroyAPIView - 详情、更新和删除视图

以下两个使用例子包含了所有的增删改查

1. 简单的 ListCreateAPIView 示例

python
运行
复制
from rest_framework import generics
from myapp.models import Book
from myapp.serializers import BookSerializer

class BookListCreateView(generics.ListCreateAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

这个简单的视图类会自动提供:

  • GET 请求:返回所有书籍的列表
  • POST 请求:创建新书籍

2. RetrieveUpdateDestroyAPIView 示例

python
运行
复制
class BookDetailView(generics.RetrieveUpdateDestroyAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

这个视图类提供:

  • GET 请求:获取单个书籍详情
  • PUT/PATCH 请求:更新书籍
  • DELETE 请求:删除书籍