Rest_Framework--renderers
渲染器
该功能只是在我们的开发调试的时候用,默认有两个类。
当浏览器访问时走BrowsableAPIRender类返回html页面
当其他形式访问时返回json形式返回
#restframework中默认就是下面 这两个render类,它的内部实现原理是拿url中的后缀名 .json 和类中的format字段进行比较,
如果renderer_classes 中的某个类匹配成功了,那就用那个类来返回某种格式的数据 renderer_classes = [JSONRenderer,BrowsableAPIRenderer] #JSONRenderer 后端返回的数据序列化成json类型 #BrowsableAPIRenderer,将文件的content-type设置为text/html ,游览器在获取到这种文件时,会自动调用html解析器
对文件进行相应的处理.也就是当浏览器访问的时候,restframwork默认返回给我们一个html页面
restframework 中 render_classes 中默认就是这两个类 源码中规定
DEFAULTS = { # Base API policies 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ),
注意来看一下:Browsable ApIRenderer的相关源码
media_type = 'text/html' format = 'api' template = 'rest_framework/api.html'#当与这个类匹配的时候,会调用rest_framework中默认的HTML filter_template = 'rest_framework/filters/base.html' code_style = 'emacs' charset = 'utf-8' form_renderer_class = HTMLFormRenderer