增删改查

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import *
from .sers import CateSer

# 1. 分类接口
class CateView(APIView):

    # 1.1 新增分类
    def post(self, request):
        # 1.1.1 获取分类名称
        name = request.data.get('name')
        # 天外飞仙
        print(name, '-----post')

        # 1.1.2 判断分类名称是否存在
        cate = Cate.objects.filter(name=name).first()
        if cate:
            return Response({'msg': '分类已存在', 'code': 200})

        # 创建序列化对象
        data = {'name': name}
        cate_ser = CateSer(data=data)

        # 1.1.3 验证分类名称字段是否合格
        if cate_ser.is_valid():
            # 1.1.4 存入数据库
            cate_ser.save()  # 存入数据库/反序列化

            # 1.1.5 响应
            return Response({'msg': '新增成功', 'code': 200})
        else:
            return Response({'msg': '数据不符合要求', 'code': 400})

    # 1.2 查询
    def get(self,request):
        # 1.2.1 查询所有分类
        cates = Cate.objects.all()

        # 1.2.2 序列化---把objectd对象转为json
        cates_ser = CateSer(cates,many=True)
        print(cates_ser)
        #1.2.3返回数据
        return Response(cates_ser.data)

    # 1.3 删除
    def delete(self,request):
        # 1.获取删除的cate_id
        cate_id = request.data.get('cate_id')
        print(cate_id,'-----delete')
        # 2.根据cate_id,查到cate对象
        cate = Cate.objects.filter(id=cate_id)
        # 3.判断cate对象是否存在,存在则删除,不存在则提示不存在
        if cate:
            cate.delete()
            return Response({'msg': '删除成功', 'code': 200})
        else:
            return Response({'msg': '此分类不存在', 'code': 400})

    # 1.4 修改
    def put(self,request):
        # 1.4.1获取要修改的分类id和新的分类名称
        cate_id= request.data.get('cate_id')
        name = request.data.get('name')
        # 1.4.2查询分类对象
        cate = Cate.objects.filter(id=cate_id).first()
        cate_ser = CateSer(instance=cate, data={'name': name})
        # 1.4.3判断分类是否存在
        if cate:
            if cate_ser.is_valid():
                cate_ser.save()
                return Response({'msg': '修改成功', 'code': 200})
            else:
                return Response({'msg': '此分类不存在', 'code': 400})

            # 1.4.4返回响应

 

posted @ 2020-09-04 17:23  后羿的百宝箱  阅读(255)  评论(0编辑  收藏  举报