gpt4 book ai didi

django 中间件只有 "process_response"当缺少斜杠时

转载 作者:行者123 更新时间:2023-12-01 07:16:36 25 4
gpt4 key购买 nike

我写了一个这样的中间件:

class LogMiddleware( object ):

def process_request( self, request ):
logging.debug("start")

def process_response( self, request, response ):
logging.debug("end")
return response

我把它放在 MIDDLEWARE_CLASSES 的底部

大多数时候它工作正常。

当我使用 url/admin 进行测试而没有尾随“/”时,我只能看到记录的“end”,为什么?

最佳答案

documentation解释了这一点。

中间件类按照它们出现的顺序进行处理。 CommonMiddleware 类比 LogMiddleware 类更高,因此首先处理。它执行重定向,因为您的 URL 不以斜杠结尾,因此返回 HttpResponseRedirect。

如果请求中间件返回响应,在这种情况下,不会处理进一步的请求中间件类,因此不会记录“开始”。但是,响应中间件类始终被处理,因此记录“end”。

关于django 中间件只有 "process_response"当缺少斜杠时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com