自定制过滤器与封装Response对象

自定制过滤器

基于django-filter扩写

1 写一个类MyFilter,继承BaseFilterBackend
2 重写filter_queryset方法,在该方法内部进行过滤(自己设置的过滤条件)
3 返回queryset对象(过滤后的queryset对象)
4 配置在视图类中
    filter_backends = [MyFilter,]

 

 

封装Response对象

1 以后都使用自己封装的response

 

复制代码
from rest_framework.response import Response

# 第一种
class APIResponse(Response):
    def __init__(self, code=100, msg='成功', status=None, headers=None, **kwargs):
        res_data = {
            'code': code,
            'msg': msg,
        }
        if kwargs:
            res_data.update(kwargs)
        super().__init__(data=res_data, status=status, headers=headers)     

'''
        return APIResponse()  
        # 成功,没有数据  
        {
            "code": 100,
            "msg": "成功"
        }
        
        return APIResponse(result=[])  
        {
            "code": 100,
            "msg": "成功"
             result:[]
        }
        
        return APIResponse(token='xxxxx')  
        {
            "code": 100,
            "msg": "成功"
            token:'xxxxx'
        }
        
         return APIResponse(headers={name:amgl})  
        # 响应头中会多name=amgl
        {
            "code": 100,
            "msg": "成功"
        }
'''
# 第二种
# class MyResponse():
#     def __init__(self):
#         self.status=100
#         self.msg='成功'
#     @property
#     def get_dict(self):
#         return self.__dict__

# if __name__ == '__main__':
#     res=MyResponse()
#     res.status=101
#     res.msg='查询失败'
#     # res.data={'name':'AAA'}
#     print(res.get_dict) # {'status': 101, 'msg': '查询失败'}
复制代码

 

from rest_framework.response import Response

# 第一种

class APIResponse(Response):

  def __init__(self, code=100, msg='成功', status=None, headers=None, **kwargs):

res_data = { 'code': code, 'msg': msg, }

if kwargs: res_data.update(kwargs)

super().__init__(data=res_data, status=status, headers=headers) '''

return APIResponse() # 成功,没有数据 { "code": 100, "msg": "成功" }

return APIResponse(result=[]) { "code": 100, "msg": "成功" result:[] }

return APIResponse(token='xxxxx') { "code": 100, "msg": "成功" token:'xxxxx' }

return APIResponse(headers={name:amgl}) # 响应头中会多name=amgl { "code": 100, "msg": "成功" } '''# 第二种

# class MyResponse():

# def __init__(self):

# self.status=100# self.msg='成功'

# @property # def get_dict(self):

# returnself.__dict__ # if __name__ == '__main__':

# res=MyResponse() # res.status=101# res.msg='查询失败'

# # res.data={'name':'AAA'} # print(res.get_dict) # {'status': 101, 'msg': '查询失败'}

posted @   朱饱饱  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示