BaseHandler.apply_response_fixes在django中做了什么?

时间:2015-11-05 11:14:22

标签: python django http-headers http-redirect

我正在使用pdb逐步执行django请求/响应周期来调试重定向被修复的问题。

我在响应的最后阶段(link to django source)已经过了中间件的应用程序,我到达BaseHandler.apply_response_fixes(request,response)被调用的地方,它与我的重定向标题混淆:

之前的标题

(Pdb) response._headers
{'x-frame-options': ('X-Frame-Options', 'SAMEORIGIN'), 
'content-type': ('Content-Type', 'application/octet-stream'), 
'location':'http://localhost:9000/6/result//blogs/', 
'server': ('Server', 'WSGIServer/0.2 CPython/3.4.3')}

现在我进行下一步:

-> response = self.apply_response_fixes(request, response)
(Pdb) n

现在我的位置标题中有一个迷路t

之后

标题

(Pdb) response._headers
{'x-frame-options': ('X-Frame-Options', 'SAMEORIGIN'),
 'content-type': ('Content-Type', 'application/octet-stream'), 
'location': ('Location', 'http://localhost:9000/6/result//blogs/t'),      
'server': ('Server', 'WSGIServer/0.2 CPython/3.4.3')}

BaseHandler.apply_response_fixes(request,response)看起来很凶悍:

response_fixes = [
    http.conditional_content_removal,
]
def apply_response_fixes(self, request, response):
        """
        Applies each of the functions in self.response_fixes to the request and
        response, modifying the response in the process. Returns the new
        response.
        """
        for func in self.response_fixes:
            response = func(request, response)
        return response

这里发生了什么? BaseHandler.apply_response_fixes(request, response)做了什么?

我该如何规避这个问题?

0 个答案:

没有答案