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())
    ]
  • 相关阅读:
    spring hibernate 调用存储过程
    Mybatis mapper配置
    流量红包算法
    带搜索的下拉框Chosen
    生成二维码
    Linux netlink机制
    OpenFlow Switch学习笔记(七)——Matching Fields
    Hierarchical Token Bucket
    OpenvSwitch架构
    Examining Open vSwitch Traffic Patterns
  • 原文地址:https://www.cnblogs.com/cou1d/p/12334837.html
Copyright © 2011-2022 走看看