drf view

Do not use dif view

# In the following code, there are many code duplication 
from rest_framework.views Import APIView
 from app01.models Import *
 from app01.mySer Import *
 from django.utils.httpwrappers Import jsonResponse 

class PublishView (APIView): 

    DEF GET (Self, Request):      # get all data 
        publish_list = Publish.objects.all () 
        bs = PublishSerializers (publish_list, MANY = True)     # PublishSerializers write their own serialization 

        return jsonResponse (bs.data, Safe = False) 

    DEFPOST (Self, Request):      # Add Record 
        # add a Data 
        Print (request.data) 

        BS = PublishSerializers (Data = request.data)
         IF bs.is_valid (): 
            bs.save ()   # generates a recording 
            return jsonResponse (BS. data, Safe = False)
         the else : 

            return jsonResponse (bs.errors, Safe = False) 


class PublishDetailView (APIView):
     DEF GET (Self, Request, PK):       # Get single data 
        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

 

Guess you like

Origin www.cnblogs.com/pdun/p/11257059.html