json_response.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: Allen
  4. @Created on: 2023/10/18
  5. @Remark: 自定义的JsonResonpse文件
  6. """
  7. from rest_framework.response import Response
  8. class SuccessResponse(Response):
  9. """
  10. 标准响应成功的返回, SuccessResponse(data)或者SuccessResponse(data=data)
  11. (1)默认code返回2000, 不支持指定其他返回码
  12. """
  13. def __init__(self, data=None, msg='success', status=None, template_name=None, headers=None, exception=False,
  14. content_type=None,page=1,limit=1,total=1):
  15. std_data = {
  16. "code": 2000,
  17. "data": {
  18. "page": page,
  19. "limit": limit,
  20. "total": total,
  21. "data": data
  22. },
  23. "msg": msg
  24. }
  25. super().__init__(std_data, status, template_name, headers, exception, content_type)
  26. class DetailResponse(Response):
  27. """
  28. 不包含分页信息的接口返回,主要用于单条数据查询
  29. (1)默认code返回2000, 不支持指定其他返回码
  30. """
  31. def __init__(self, data=None, msg='success', status=None, template_name=None, headers=None, exception=False,
  32. content_type=None,):
  33. std_data = {
  34. "code": 2000,
  35. "data": data,
  36. "msg": msg
  37. }
  38. super().__init__(std_data, status, template_name, headers, exception, content_type)
  39. class ErrorResponse(Response):
  40. """
  41. 标准响应错误的返回,ErrorResponse(msg='xxx')
  42. (1)默认错误码返回400, 也可以指定其他返回码:ErrorResponse(code=xxx)
  43. """
  44. def __init__(self, data=None, msg='error', code=400, status=None, template_name=None, headers=None,
  45. exception=False, content_type=None):
  46. std_data = {
  47. "code": code,
  48. "data": data,
  49. "msg": msg
  50. }
  51. super().__init__(std_data, status, template_name, headers, exception, content_type)