Django中restframework 的返回自定义结构、字段验证、
这篇博客基于我之前的博客[Django 中 restframework 配置与增删改查操作]:
返回学生的所有数据;
自定义结构:
在setting中配置app,INSTALLED_APPS中加入rest_framework,在文件最后定义rest_framework的接口。代码如下:
REST_FRAMEWORK = {
#返回结构自定义
'DEFAULT_RENDERER_CLASSES':(
'utils.render_response.CustomJsonRenderer',
)
}
我们定义一个中间件py文件为render_response,代码如下:
from rest_framework.renderers import JSONRenderer
class CustomJsonRenderer(JSONRenderer):
def render(self, data, accepted_media_type=None, renderer_context=None):
"""
格式{
'code':xxx,
'msg':请求成功,
'data':{返回数据}
}
"""
#如果返回的data为字典 中有msg的key 则将内容改为请求成功 code 为0
# 如果不是字典则将msg 定义为返回成功 code为0
# 再将完整的res数据传入
if renderer_context:
if isinstance(data,dict):
msg = data.pop('msg','请求成功')
code = data.pop('code',0)
else:
msg = '返回成功'
code = 0
response = renderer_context['response']
response.status_code = 200
res={
'code':code,