DjangoRESTframework中响应对象的属性和方法
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等。
