Django REST framework (四)混合模式mixins视图使用

  • A+
所属分类:Django REST framework



原创:www.pythonfans.cn

安装搭建环境:

安装以及项目搭建参考:Django REST framework (一)安装以及django项目创建

mixins视图使用:

1.新增view函数视图 :vim ly_ops/Idc/views.py

from rest_framework import generics,mixins
from rest_framework.response import Response

from .models import Idc
from .serializers import IdcSerializer

class idc3(generics.GenericAPIView, #GenericAPIView来获取
           mixins.ListModelMixin, #查出所有数据列表
           mixins.CreateModelMixin): #创建一条数据
    """
    获取Idc所有的对象,以及新增一个Idc对象
    """
    queryset = Idc.objects.all() #数据源
    serializer_class = IdcSerializer #rest序列化模型
    def get(self,request,*args,**kwargs):

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

class idc_detail3(generics.GenericAPIView,
    mixins.RetrieveModelMixin,  #查出一条数据
    mixins.UpdateModelMixin,    #更新一条数据
    mixins.DestroyModelMixin):  #删除一条数据
    """
    对单个Idc对象的删改查
    """
    queryset = Idc.objects.all()
    serializer_class = IdcSerializer

    def get(self,request,*args,**kwargs):
        return self.retrieve(request, *args, **kwargs)
    def put(self,request,*args,**kwargs):
        return self.update(request, *args, **kwargs)
    def delete(self,request,*args,**kwargs):
        return self.destroy(request, *args, **kwargs)

2.修改URL:vim ly_ops/ ly_ops/urls.py

urlpatterns = [
    path('idc3/',idc3.as_view()),
    re_path('idc3/(?P<pk>[0-9]+)/',idc_detail3.as_view())#需要加变量pk,混合模式必须这么写
]

启动django,进行测试

python manage.py runserver 8000

新增一条数据:post 127.0.0.1:8000/idc3/

查看所有的数据:get 127.0.0.1:8000/idc3/

查看单条数据: get 127.0.0.1:8000/idc3/1/ #1代表id是1的数据

修改单条数据: put 127.0.0.1:8000/idc3/1/ #1代表id是1的数据

删除一条数据: delete 127.0.0.1:8000/idc3/1/ #1代表id是1的数据

Django REST framework (四)混合模式mixins视图使用
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: