drf——请求与响应

drf之——请求

 

Request类对象的分析

1).data
    request.data 返回解析之后的请求体数据。类似于Django中标准的request.POST和 request.FILES属性,但提供如下特性:
    包含了解析之后的文件和非文件数据
    包含了对POST、PUT、PATCH请求方式解析后的数据
    利用了REST framework的parsers解析器,不仅支持表单类型数据,也支持JSON数据
2).query_params
	request.query_params与Django标准的request.GET相同,只是更换了更正确的名称而已
3) 其他的属性用起来跟之前一样

  

请求限制支持的编码格式

请求支持以下三种格式,我们要将其限制

# urlencoded
# form-data
# json

  

需要导入以下模块:

from rest_framework.parsers import JSONParser, FormParser, MultiPartParser

 

限制方式一:在视图类上写

parser_classes中做限制:

class BookView(APIView):
    parser_classes = [JSONParser, FormParser, MultiPartParser]

    def post(self, request):
        print(request.data)
        return Response('ok')

 

限制方式:将想要限制的编码格式从列表移除
特点:只对局部视图类有效

  

 

限制方式二:在配置文件中写

在配置文件中书写:

# drf的配置,统一写成它
    REST_FRAMEWORK = {
        'DEFAULT_PARSER_CLASSES': [
            'rest_framework.parsers.JSONParser',
            # 'rest_framework.parsers.FormParser',
            # 'rest_framework.parsers.MultiPartParser',
        ],
    }

 

限制方式:将想要限制的编码格式注释掉
特点:全局有效

  

如果全局配置过了,局部想要进一步限制,只需要在局部书写限制方式一即可

 

总结:能够处理的请求方式编码

-优先从视图类中找
-再去项目配置文件找
-再去drf默认的配置中找

  

 

drf之——响应

 

Response类的对象分析

# return Response({code:100})
-data:响应体的内容,可以字符串,字典,列表
-status:http响应状态码  
	-drf把所有响应码都定义成了一个常量
	
template_name:模板名字,用浏览器访问,看到好看的页面,用postman访问,返回正常数据
	-自定制页面
        -根本不用
headers:响应头加数据
	-headers={'name':'kevin'}
content_type:响应编码,一般不用

  

 

响应限制支持的编码格式

类似请求限制,共有两种模块

# JSONRenderer
# BrowsableAPIRenderer

  

 

首先需要导入模块:

from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer

 

 限制方式一:在视图类上写

class BookView(APIView):
        renderer_classes = [JSONRenderer,BrowsableAPIRenderer]

 

限制方式:将想要限制的编码格式从列表移除
特点:只对局部视图类有效

  

限制方式二:在配置文件中写

 # drf的配置,统一写成它
     REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            # 'rest_framework.renderers.BrowsableAPIRenderer',
        ],
    }

 

限制方式:将想要限制的编码格式注释掉
特点:全局有效

  

如果全局配置过了,局部想要进一步限制,只需要在局部书写限制方式一即可

 

posted @ 2023-11-23 20:47  wellplayed  阅读(3)  评论(0编辑  收藏  举报