[Day22] - Django-REST-Framework GenericAPIViews 和 Mixins 介绍

GenericAPIView 介绍

GenericAPIView 是 APIView 的延伸,它拥有 APIView的功能,且另外增加一些实用的作用。

基本设定

  • queryset view 获取之物件
  • serializer_class view 使用之serializers
  • lookup_field field 供程序查找 model

基本方法

  • get_queryset(self) 回传所有资料
  • get_object(self) 取得特定物件资料

Mixins 介绍

在 GenericAPIView 当中没有的功能,我们亦可以用 Mixins 进行扩充
DRF 内建常用的有以下之 Mixins,各提供不同的功能:

  • ListModelMixin
  • CreateModelMixin
  • RetrieveModelMixin
  • UpdateModelMixin
  • DestroyModelMixin

实作

我们可以这样来使用 GenericAPIView 和 Mixins

class ProductCreateAPIView(mixins.ListModelMixin,
                             mixins.CreateModelMixin,
                             generics.GenericAPIView):

    queryset = Product.objects.all()
    serializer_class =ProductSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

结语

熟悉 GenericAPIView 和 Mixins 可以让我们像是积木一样拼装出我们需要的功能,常见常使用的功能可以透过这些class 有效率的开发。


<<:  那些被忽略但很好用的 Web API / ResizeObserver

>>:  [Day20] Scrum失败经验谈 – 只想得太大太远

Day29-影像侵蚀

上章我们在进行图像轮廓增强的处理时,有用到影像膨胀函数cv2.dilate,但那时候只是稍微带过,读...

前端工程学习日记第11天

https://codepen.io/pwbzvqja/pen/MWeBbXQ 作业目标: 作业批改...

[13th][Day21] scratch

scratch base image 建立最小 image 之前 build 的许多 image 都...

Day1 # Let's Go!

Go(又称 Golang)是 Google 开发的程序语言,详细简介在 wiki 上都可以找得到。 ...

Day30 跟着官方文件学习Laravel-参赛心得

写铁人赛是一个非常有趣的过程,也让我在工作之余会继续接触程序,这次参赛的目的也算是整理自己在工作时需...