fei_middlewares.headers_info 源代码

"""检查request / response 的headers
    用于debug
"""
from django.conf import settings

[文档]def request_headers(get_response): """ 下面这几个常规的headers不显示: Content-Length ---> Referer ---> http://127.0.0.1:8000/v2/ Connection ---> keep-alive Host ---> 127.0.0.1:8000 Upgrade-Insecure-Requests ---> 1 下面这几个headers会被显示 Content-Type ---> text/plain Cookie ---> csrftoken=COuMh90BlYq4dOSxOq ...; sessionid=1h8ntp1x ... Accept ---> text/html,application/xht ... User-Agent ---> Mozilla/5.0 (Macintosh; Intel Mac OS X 1 ... Accept-Language ---> en-us Accept-Encoding ---> gzip, deflate request.user.id ---> 25 """ def wrapper(request): headers_not_log = ["Content-Length", "Referer", "Connection", "Host", "Upgrade-Insecure-Requests", ] headers = getattr(request, 'headers', 'request目前还没有 *headers* ') print('-- request_headers --'.ljust(30)) for k, v in headers.items(): if k not in headers_not_log: print(f' {k.ljust(30)} ---> {v.ljust(80)}') # print('---------------- END middleware [request_headers] ---\n') result = get_response(request) return result return wrapper
[文档]def response_headers(get_response): """显示response的headers 和request_headers类似,但这里显示的是reponse headers """ def wrapper(request): result = get_response(request) # after print('-- response_header --'.ljust(30), end='') for k, v in result._headers.items(): print(f'{str(k)} : {str(v)}', end='|') # print('---------- END [response_header] ---') print() return result return wrapper