DRF 请求和响应

Request 和 Response对象 替代django 内置的HttpRequest 和HttpResponse 

Request 对象:

1.request.POST 只能处理表单数据,获取通过post方式上传的数据

2.request.data 可以处理任意的数据,可以通过post,put,patch等方式上传的数据

3.request.query_params 查询参数

Response对象:

可以自动的根据返回的数据类型来决定返回什么样的数据,并且会自动监听如果是浏览器访问,那么返回这个路由的信息

使用原生

@require_http_methods(['GET','POST'])
def merchant(request):
    # get 返回所有
    # post 创建新的商家
    if request.method == 'GET':
        queryset = Merchant.objects.all()
        serializer = MerchantSerializer(instance=queryset,many=True)
        return JsonResponse(serializer.data,status=200,safe=False)

    else:
        serializer = MerchantSerializer(data=request.POST)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data,status=200)
        else:
            return JsonResponse(serializer.errors, status=400)

 

from rest_framework.response import Response
from rest_framework.decorators import api_view


# http://127.0.0.1:8000/serializerapp/merchant/  get 获取所有
# http://127.0.0.1:8000/serializerapp/merchant/  post 添加
#@require_http_methods(['GET','POST'])
@api_view(['GET','POST'])
def merchant(request):
    # get 返回所有
    # post 创建新的商家
    if request.method == 'GET':
        queryset = Merchant.objects.all()
        serializer = MerchantSerializer(instance=queryset,many=True)
        #return JsonResponse(serializer.data,status=200,safe=False)
        return Response(serializer.data, status=200)

    else:
        serializer = MerchantSerializer(data=request.POST)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data,status=200)
        else:
            return JsonResponse(serializer.errors, status=400)

实现APIView:

以上Response 和Request 对象都只能在DRF的apiview中使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值