zoukankan      html  css  js  c++  java
  • Django Rest Framework 使用mixins模块优化序列化接口 (get-post-put-delete)

    继承《Django Rest Framework 序列化接口(PUT与Delete)设计 (前期版)!    》代码

    修改views.py代码

    '''3.视图组件优化方式一:使用mixins优化'''
    #导入mixins模块
    from rest_framework.mixins import (
        CreateModelMixin,  # 增删改查复
        DestroyModelMixin,
        UpdateModelMixin,
        ListModelMixin,
        RetrieveModelMixin
    )
    #导入已经写好的序列化类
    from .serizlizer import BookSerizlizer
    #导入GenericAPIView,它继承APIView
    from rest_framework.generics import GenericAPIView
    
    
    class BookView(ListModelMixin, CreateModelMixin, GenericAPIView):
        #固定下来的类变量
        queryset = models.Book.objects.all()
        serializer_class = BookSerizlizer
    
        def get(self, request, *args, **kwargs):
            return self.list(request, *args, **kwargs)
    
        def post(self, request, *args, **kwargs):
            return self.create(request, *args, **kwargs)
    
    #对单条数据做修改urls.py :"re_path(r'book/(?P<pk>d+)/$',views.BookFilterView.as_view())",此处匹配中写PK它会自动识别
    class BookFilterView(RetrieveModelMixin, GenericAPIView, DestroyModelMixin, UpdateModelMixin):
        queryset = models.Book.objects.all()
        serializer_class = BookSerizlizer
    
        def get(self, request, *args, **kwargs, ):
            return self.retrieve(request, *args, **kwargs)
    
        def delete(self, request, *args, **kwargs):
            return self.destroy(request,  *args, **kwargs)
    
        def put(self, request, *args, **kwargs, ):
            return self.update(request,*args, **kwargs, )
    views.py
    from django.contrib import admin
    from django.urls import path,re_path
    from books import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('book/',views.BookView.as_view()),
        #对于单条指定数据的put,get,delete,post方法定义的url
        re_path(r'book/(?P<pk>d+)/$',views.BookFilterView.as_view())
    ]
  • 相关阅读:
    桥接,NAT,Host Only的区别
    PHP并发IO编程之路
    Git SSH Key 生成步骤
    composer安装学习
    db file sequential read等待事件的一点研究
    多个hints 怎么写?
    再次遭遇笛卡尔积
    pl/sql 在一个程序块里打印日志输出到表格
    pl/sql 程序块里打印问题
    利用ordered hints优化SQL
  • 原文地址:https://www.cnblogs.com/cou1d/p/12334837.html
Copyright © 2011-2022 走看看