未命名
一、接口开发方式分类
1. 函数视图(Function-Based Views)
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
def book_list(request):
"""
基于函数的书籍列表视图
"""
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
@api_view(['POST'])
def create_book(request):
"""
基于函数的书籍创建视图
"""
serializer = BookSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)2. 基于类的视图(Class-Based Views)
3. 通用视图(Generic Views)
4. 视图集(ViewSets)
二、路由
1. FBV/CBV/GV
2. VS
1. SimpleRouter(基本路由器)
2. DefaultRouter(默认路由器)
3. CustomRouter(自定义路由器)
三、ViewSet
1. 配置
1. 核心配置
2. 行为控制配置
2. 自定义动作
3. 钩子函数
1. perform_create(serializer)
2. perform_update(serializer)
3. perform_destroy(instance)
4. 分页器
1. PageNumberPagination
2. LimitOffsetPagination
3. CursorPagination
4. 示例
5. 自定义分页响应
5. 自定义数据集获取
1. get_queryset 方法详解
2. get_object 方法详解
最后更新于