- Title(EN): Django REST Framework Learning Notes (3): the renders module
- Author: dog2
用DRF做测试会发现,用浏览器请求API返回DRF定制的页面,对开发者相当友好,如下图:
而若使用python第三方模块requests或者postman等工具,这则返回的是原生的json数据。
实现这种差别响应的,正是本节的主角——(响应)渲染模块。
基本信息
- 源码:
rest_framework.renders
rest_framework.request.Request
:主要类
- 官方文档:API Guide - Renderers
源码分析
1 | # 在`APIView`类的`dispatch`方法中,最后解析reponse对象数据 |
总结
调用链如下:
- 自己视图类的类属性(局部配置)
APIView
类的类属性设置- 自己配置文件的
DEFAULT_RENDERER_CLASSES
(全局配置) - drf配置文件的
DEFAULT_RENDERER_CLASSES
用法示例
自定义全局配置
所有视图类统一处理,在项目的settings.py
中
1 | REST_FRAMEWORK = { |
自定义局部配置
某一个或一些实体类单独处理,在views.py
视图类中提供对应的类属性
1 | # 在setting.py中配置REST_FRAMEWORK,完成的是全局配置,所有接口统一处理 |