首页 > 其他 > 详细

drf视图

时间:2019-07-28 00:08:47      阅读:124      评论:0      收藏:0      [点我收藏+]

不使用dif视图

技术分享图片
#在下面的这些代码中,存在很多代码重复
from rest_framework.views import APIView
from app01.models import *
from app01.mySer import *
from django.http import JsonResponse

class PublishView(APIView):

    def get(self, request):     #获取所有数据
        publish_list = Publish.objects.all()
        bs = PublishSerializers(publish_list, many=True)    #PublishSerializers自己写的序列化

        return JsonResponse(bs.data,safe=False)

    def post(self, request):     #添加纪录
        # 添加一条数据
        print(request.data)

        bs = PublishSerializers(data=request.data)
        if bs.is_valid():
            bs.save()  # 生成记录
            return JsonResponse(bs.data,safe=False)
        else:

            return JsonResponse(bs.errors,safe=False)


class PublishDetailView(APIView):
    def get(self, request, pk):      #获取单条数据
        publish_obj = Publish.objects.filter(pk=pk).first()
        bs = PublishSerializers(publish_obj, many=False)
        return JsonResponse(bs.data,safe=False)

    def put(self, request, pk):    #修改单条
        publish_obj = Publish.objects.filter(pk=pk).first()

        bs = PublishSerializers(data=request.data, instance=publish_obj)
        if bs.is_valid():
            bs.save()  # update
            return JsonResponse(bs.data)
        else:
            return JsonResponse(bs.errors)
 
    def delete(self, request, pk):  #删除一条数据
        Publish.objects.filter(pk=pk).delete()

        return JsonResponse("")
View Code

 

drf视图

原文:https://www.cnblogs.com/pdun/p/11257059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!