python django restful框架_python-django rest framework框架之视图

视图 :常用 1和4 两种1. 原始的APIViewclassIndexView(views.APIView):def get(self, request, *args, **kwargs):

user_list=models.UserInfo.objects.all()

ser= IndexSerializer(instance=user_list,many=True)returnResponse(ser.data)2. GenericAPIView(APIView) 里面实现了一些鸡肋的方法,没什么用3. GenericViewSet(ViewSetMixin, generics.GenericAPIView) :在url中标注什么请求方法执行什么函数

路由修改:

urlpatterns=[

url(r'^index/$', views.IndexView.as_view({'get':'list','post':'create'})),

url(r'^index/(?P\d+)$', views.IndexView.as_view({'get':'retrieve','delete':'remove'})),

]

视图修改:classIndexView(viewsets.GenericViewSet):def list(self,request,*args,**kwargs):pass #获取列表信息

def retrieve(self, request, *args, **kwargs):pass #获取单条数据

def create(self,request, *args, **kwargs):pass以前不用GenericViewSet的方式:

POST/users/删

DELETE/users/1/改

PUT 全部修改/users/1/patch 局部修改/users/1/查

GET 全部数据/users/GET 一条数据/users/1/urlpatterns=[

url(r'^index/$', views.IndexView.as_view()),

url(r'^index/(?P\d+)$', views.IndexView.as_view()),

]classIndexView(views.APIView):def get(self,request,*args,**kwargs):

pk= kwargs.get('pk')ifpk:pass #获取单条信息

else:pass #获取列表信息

def post(self,request,*args,**kwargs):pass

def put(self,request,*args,**kwargs):pass

def patch(self,request,*args,**kwargs):pass

def delete(self,request,*args,**kwargs):pass

4.ModelViewSet(mixins.CreateModelMixin,mixins.RetrieveModelMixin,mixins.UpdateModelMixin,mixins.DestroyModelMixin,mixins.ListModelMixin,GenericViewSet)#继承了 增删改查+局部更新+GenericViewSet

from rest_framework.pagination importLimitOffsetPagination,PageNumberPagination,CursorPaginationfrom rest_framework importviewsetsfrom api importmodelsfrom api.serializers.index importIndexSerializerclassP2(PageNumberPagination):#每页显示的数据条数

max_page_size = 5page_size= 2page_size_query_param= 'size'

#页码

page_query_param = 'page'

class IndexView(viewsets.ModelViewSet): #也可以不继承ModelViewSet,继承上面那些类中的几个,就只有某几个方法了

queryset =models.UserInfo.objects.all()

serializer_class=IndexSerializer

pagination_class=P2#也可以自定制方法

#def list(self, request, *args, **kwargs):

#pass

#def retrieve(self, request, *args, **kwargs):

#pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值