整理一下middleware 的使用。
    自定义一个,在模块下定义一个middleware.py
    然后。。。。(采用的类)

    1. import time
    2. import logging
    3. logger = logging.getLogger(__name__)
    4. class TimerMiddleware:
    5. def __init__(self, get_response):
    6. self.get_response = get_response
    7. def __call__(self, request):
    8. begin = time.time()
    9. # 注意这里是代表请求前的处理
    10. response = self.get_response(request)
    11. # 这里是代表请求后的处理
    12. end = time.time()
    13. # 这里代表插入一个请求头
    14. response['X-Page-Duration-ms'] = int((end - begin) * 1000)
    15. # 这里展示3个参数,时间,url路径,和get的请求
    16. logger.info('%s %s %s' % (begin - end, request.path, request.GET.dict()))
    17. return response

    既然涉及到了日志,那么这边就要进行日志的配置,前往base.py

    1. "handlers": {
    2. "console": {
    3. "class": "logging.StreamHandler",
    4. "level": "DEBUG",
    5. "formatter": "simple"
    6. },
    7. "file": {
    8. "class": "logging.FileHandler",
    9. "formatter": "simple",
    10. "filename": "logtest.log"
    11. },
    12. # 在这里,handler里面根据上面的模板,配置filename
    13. "middleware": {
    14. "class": "logging.FileHandler",
    15. "formatter": "simple",
    16. "filename": os.path.join(BASE_DIR, 'middleware.log')
    17. },
    18. },
    19. "loggers": {
    20. "simple": {
    21. "level": "DEBUG",
    22. "handlers": ["file"],
    23. "propagate": True
    24. },
    25. "standard": {
    26. "level": "ERROR",
    27. "handlers": ["console", "file"],
    28. "propagate": True
    29. },
    30. # 在这里,loggers里面根据上面的模板,配置handlers,普遍选择console和对应的日志配置
    31. "interview.middleware": {
    32. "level": "INFO",
    33. "handlers": ["console", "middleware"],
    34. "propagate": False
    35. },