欢迎访问宙启技术站
智能推送

DjangoRESTframework中响应对象的属性和方法

发布时间:2023-12-27 23:10:10

Django REST framework提供了一系列的响应对象,用于处理API请求的响应结果。这些响应对象都是从DRF的Response类派生出来的。

在DRF中,响应对象具有一些常用的属性和方法,下面将介绍一些常用的属性和方法,并附上一些使用例子来说明其使用。

1. 属性

- status_code:响应的HTTP状态码。

- status_text:响应的HTTP状态码对应的文本。

- data:响应的数据,通常是一个字典。

- content:响应的内容,通常是一个JSON字符串。

- headers:响应的HTTP头部信息,一个字典。

以下是一个使用示例,返回一个成功的响应:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    return Response(data, status=status.HTTP_200_OK)

2. 方法

- render():将响应对象转换为一个HttpResponse对象。该方法通常在视图函数中使用,以将响应结果发送到客户端。

以下是一个使用示例,将响应对象转换为HttpResponse对象并返回:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    return response.render()

- set_cookie():设置一个Cookie。

以下是一个使用示例,设置一个名为"token"的Cookie:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    response.set_cookie('token', 'abc123')
    return response

- set_header():设置一个HTTP头部信息。

以下是一个使用示例,设置一个名为"X-Custom-Header"的HTTP头部信息:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    response['X-Custom-Header'] = 'CustomValue'
    return response

- delete_cookie():删除一个Cookie。

以下是一个使用示例,删除名为"token"的Cookie:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    response.delete_cookie('token')
    return response

- accepted_renderer:获取请求的渲染器(Renderer)。

以下是一个使用示例,获取请求的渲染器并返回其类名:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    renderer_class = response.accepted_renderer.__class__.__name__
    return Response(f'Renderer: {renderer_class}')

- accepted_media_type:获取请求的媒体类型。

以下是一个使用示例,获取请求的媒体类型并返回:

from rest_framework.response import Response

def my_view(request):
    data = {
        'message': 'Success',
        'data': []
    }
    response = Response(data, status=status.HTTP_200_OK)
    media_type = response.accepted_media_type
    return Response(f'Media type: {media_type}')

以上是Django REST framework中响应对象的一些常用属性和方法的使用例子,通过这些属性和方法,可以方便地处理API请求的响应结果,并根据需求设置响应的状态码、数据、HTTP头部信息、Cookie等。