加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

drf视图

发布时间:2020-12-20 12:55:10 所属栏目:Python 来源:网络整理
导读:不使用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): # 获

不使用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,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,pk):  #删除一条数据
        Publish.objects.filter(pk=pk).delete()

        return JsonResponse("")
View Code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读