Django 之 rest_framework 响应器使用
使用部分:
第一步:导入模块
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, FileUploadParserfrom rest_framework.renderers import JSONRenderer, BrowsableAPIRendererclass 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']}