电子灵魂

golang,go,C#,JAVA,PYTHON,PHP

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理


  1 # TODO 总结视图关系使用选择
  2 """
  3     1、总结视图使用:
  4         a、增删改查 ModelviewSet
  5         b、增删 CreateModelMixin,DestroyModelMixin,GenericViewSet 如果需要支持增删可继承这几个操作
  6         c、复杂逻辑 GenericViewSet 或 APIView 一般开发可选择这2个开发
  7         d、APIView 比较原生,纯净,可以需求选择这个做开发,
  8 
  9 
 10     2、根据实际需求选择不同的视图模式,和对应的路由系统
 15         路由ruoter.resigiter 自动生成增删改查,根据自己的需要选择是否需要自动生成增删改查地址
 16 
 17 """
 18 """
 19 from rest_framework.response import Response  返回的 字典可以自动序列化为json
 20 class demoview(APIView):
 21     def get(self, request, *args, **kwargs):
 22         return Respons({"result": "data"})
 23 """
 24 
 25 # TODO GenericAPIView 基本方法
 26 # TODO def get 开始执行
 27 # re_path(r'^(?P<version>[v1|v2]+)/order/$', views.OrderVies.as_view()),
 28 """
 29 from rest_framework.generics import GenericAPIView
 30 class view1View(GenericAPIView):
 31     queryset = UserInfo.objects.all()
 32     serializer_class = UserInfoSerializer
 33     pagination_class = PageNumberPagination
 34 
 35     def get(self, request, *args, **kwargs):
 36         # 获取数据
 37         roles = self.get_queryset()
 38         # 分页
 39         pager_roles = self.paginate_queryset(roles)
 40         ret = self.get_serializer(instance=pager_roles, many=True)
 41         return Response(ret.data)
 42 """
 43 
 44 # TODO 继承 分叉 ViewSetMixin, generics.GenericAPIView
 45 # TODO ViewSetMixin 需要给路由地址as_view传参数 as_view({"get": "list"})
 46 # TODO def list 开始执行
 47 # 需要在路由地址给as_view 传参数 re_path(r'^(?P<version>[v1|v2]+)/order/$', views.OrderVies.as_view({"get": "list"})),
 48 """
 49 from rest_framework.viewsets import GenericViewSet
 50 
 51 class view1View(GenericViewSet):
 52     queryset = UserInfo.objects.all()
 53     serializer_class = UserInfoSerializer
 54     pagination_class = PageNumberPagination
 55 
 56     def list(self, request, *args, **kwargs):
 57         # 获取数据
 58         roles = self.get_queryset()
 59         # 分页
 60         pager_roles = self.paginate_queryset(roles)
 61         ret = self.get_serializer(instance=pager_roles, many=True)
 62         return Response(ret.data)
 63 """
 64 
 65 # TODO ListModelMixin 不用些 def list 自动显示列表信息
 66 # class view1View(ListModelMixin, CreateModelMixin, GenericViewSet):
 67 # 相当于把方法都写到类里面了,系统自带的增删改查的方法,对应的Url地址参数也需要修改为对应的参数
 68 # 路由地址 re_path(r'^(?P<version>[v1|v2]+)/order/$', views.OrderVies.as_view({"get": "list"})),
 69 """
 70 from rest_framework.viewsets import GenericViewSet, ModelViewSet
 71 from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin
 72 
 73 class view1View(ListModelMixin, GenericViewSet):
 74     queryset = UserInfo.objects.all()
 75     serializer_class = UserInfoSerializer
 76     pagination_class = PageNumberPagination
 77 
 78 """
 79 
 80 # TODO ModelViewSet 支持增删改查
 81 #  继承 class ModelViewSet(mixins.CreateModelMixin,       创建数据
 82 #                    mixins.RetrieveModelMixin,           获取单条数据 需要传ID
 83 #                    mixins.UpdateModelMixin,             更新数据 需要传ID
 84 #                    mixins.DestroyModelMixin,             删除数据 需要传ID
 85 #                    mixins.ListModelMixin,               获取所有数据列表页
 86 #                    GenericViewSet):
 87 
 88 # 继承增删改查的视图类,对应的Url地址参数也需要修改为对应的参数
 89 # 路由地址 re_path(r'^(?P<version>[v1|v2]+)/order/$', views.OrderVies.as_view({"get": "list"})),
 90 # 增加对应的 增删改查地址,并获取id pk做对应的数据修改
 91 # re_path(r'^v1/view4/(?P<pk>\d+)/$', views.View4View.as_view(
 92 # {'get': 'retrieve',
 93 # 'delete': 'destroy',
 94 # 'put': 'update',
 95 # 'patch': 'partial_update'})),
 96 # TODO 自动生成 路由规则 获取ID 对应上面的手写规则
 97 """
 98 from rest_framework import routers
 99 router = routers.DefaultRouter()
100 router.register(r"order", views.order)
101 
102 re_path(r"^", include(router.urls))
103 """
104 """
105 from rest_framework.viewsets import ModelViewSet
106 class view1View(ModelViewSet):
107     queryset = UserInfo.objects.all()
108     serializer_class = UserInfoSerializer
109     pagination_class = PageNumberPagination
110 """
111 
posted on 2019-09-03 20:16  conncent  阅读(172)  评论(0编辑  收藏  举报