接口返回内容的自定义及接口传参

接口返回内容的自定义 

1.项目根目录中创建untils包用来存放要编写的renderer文件

2.创建rendererresponse.py文件

from rest_framework.renderers import JSONRenderer

#重写render方法
class customrenderer(JSONRenderer):
    def render(self, data, accepted_media_type=None, renderer_context=None):
        '''
        :param data: 返回的数据
        :param accepted_media_type:接收的类型
        :param renderer_context: 呈现的内容
        '''
        #if renderer_context 相当于if request.method=="POST" 如果有请求的数据过来
        if renderer_context:
            #判断是否为实例
            if isinstance(data,dict):#判断返回的数据是否是字典
                msg=data.pop('msg',"请求成功")#如果是字典获取字典当中的msg参数
                code=data.pop("code",0)#如果是字典获取字典当中code参数
            else:#非字典类型
                msg="请求成功"
                code=0
            ret={
                "msg":msg,
                "code":code,
                "author":"xxx",
                "data":data
            }#重新构建返回数据格式
            return super().render(ret,accepted_media_type,renderer_context)#返回数据格式
        else:
            return super().render(data,accepted_media_type,renderer_context)#

3.settings配置,安装renderer

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ],
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 3,
    'DEFAULT_RENDERER_CLASSES': (
        'utils.rendererresponse.customrenderer',
    ),
}

接口传参

接口传参:在安装模块的时候安装过一个django-filter,这个模块是用来做数据过滤的模块。

实现步骤:

1.必须安装django-filter模块

2.在settings中安装插件

'DEFAULT_FILTER_BACKENDS': (
        'django_filters.rest_framework.DjangoFilterBackend',  # django-filter自带的查询过滤器
    )

3.在视图中使用过滤器

好了,可以试验了

注意查询的时候中文不要加引号。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值