Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateModelMixin, UpdateModelMixin, DestroyModelMixin
一、GenericAPIView 基类
① 通过属性:
serializer_class
② 通过方法:
get_serializer_class(self)
get_serializer(self, args, *kwargs)
指明使用的数据查询集
① 通过属性
queryset
② 通过方法
get_queryset(self)
get_object(self)
class BookListView(GenericAPIView):
"""使用GenericAPIView实现“获取所有图书信息”接口"""
serializer_class = BookSerializer # 指定序列化器
queryset = Book.objects.all() # 指定查询集
def get(self, reqeust):
"""获取所有图书信息 GET /books/ :param reqeust: Request类型的对象 :return: JSON"""
book = self.get_queryset() # 获取查询集
serializer = self.get_serializer(book, many=True)# 创建序列化器对象
return Response(serializer.data) # 响应序列化后的数据
二、GenericAPIView 扩展类
GenericAPIView 的五个拓展类提供了五个方法分别进行增删改查的不同操作。
搭配 GenericAPIView 使用
class BookDetailView(mixins.RetrieveModelMixin, GenericAPIView):
"""使用GenericAPIView实现“获取单一图书信息”接口"""
serializer_class = BookSerializer # 指定序列化器
queryset = Book.objects.all() # 指定查询集
def get(self, request, pk):
"""获取单一图书信息 GET /books/<pk>/ :param request: Request类型的对象 :return: JSON"""
return self.retrieve(request)