requestRecord.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # -*- coding: utf-8 -*-
  2. """
  3. @Time : 2021/9/22 17:08
  4. @Auth : Locky
  5. @File :requestRecord.py
  6. @IDE :PyCharm
  7. """
  8. import json
  9. import time
  10. from django.utils.deprecation import MiddlewareMixin
  11. from AnsjerPush.config import LOGGER
  12. class RequestRecordMiddleware(MiddlewareMixin):
  13. def Request(self, request):
  14. request.start_time = time.time()
  15. def Response(self, request, response):
  16. try:
  17. method = request.method
  18. url = request.path
  19. # 获取请求参数并转为字符串
  20. if method == 'GET':
  21. parameter = json.dumps(request.GET.dict())
  22. elif method == 'POST':
  23. parameter = json.dumps(request.POST.dict())
  24. else:
  25. parameter = ''
  26. content = eval(str(response.content, 'utf-8')) # bytes 转为 dict
  27. # 请求是否成功
  28. if content['result_code'] != 0 or content['code'] != 0:
  29. LOGGER.info('请求路径:{}, 请求方式:{}, 输入数据:{}, 输出数据:{}, 响应状态:{}'.format(url, method, parameter, content,
  30. response.status_code))
  31. finally:
  32. return response