第一步:导入模块
from rest_framework.renders import BrowsableAPIRenderer,JSONRenderer,TemplateHTMLRenderer,StaticHTMLRenderer,HTMLFormRenderer
# JSONRenderer # JSON数据样式响应--->常用
# BrowsableAPIRenderer # 浏览器接口响应--->常用
# TemplateHTMLRenderer # 静态HTML响应
# StaticHTMLRenderer # 标准 HTML 响应
# HTMLFormRenderer # HTML 表单响应
第二步: 配置响应器
局部配置(在视图类中 配置)
from rest_framework.parsers import JSONParser, FormParser, MultiPartParser, FileUploadParser
from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer
class BooksView(ModelViewSet):
# 局部使用 版本控制 URLPathVersioning
# versioning_class = URLPathVersioning
# 局部 解析器配置
parser_classes = [JSONParser, ]
# 局部配置 响应器
renderer_classes = [JSONRenderer, BrowsableAPIRenderer]
# 获取 queryset对象
queryset = models.Book.objects.all()
# 获取 序列化类
serializer_class = myser.BookSerializer
def list(self, request, *args, **kwargs):
print(1)
print(request.version)
print(request.__dict__)
return super().list(request, *args, **kwargs)
全局配置(一般都是全局配置即可)
REST_FRAMEWORK = {
# 配置全局版本控制
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning',
'DEFAULT_VERSION': 'v1', # 默认版本(从request对象里取不到,显示的默认值)
'ALLOWED_VERSIONS': ['v1', 'v2'], # 允许的版本
'VERSION_PARAM': 'version', # URL中获取值的key
# 配置全局解释器
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser',
],
# 配置全局响应器
'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer']
}
原文:https://www.cnblogs.com/qianzhengkai/p/11144414.html