如何解决实现Django中间件来实现响应行为
我对django官方文档中的中间件描述有些困惑,并且似乎无法绕开它。
在实现基于类的中间件时,它看起来像这样(例如,来自docs):
class SimpleMiddleware:
def __init__(self,get_response):
self.get_response = get_response
def __call__(self,request):
response = self.get_response(request)
return response
如何根据我正在处理请求还是响应来实现不同的行为?
而且,这与此相关,我有点困惑,因为似乎还有一种旧的过时的中间件编写方法,可以覆盖方法process.request()
和process_response()
。我不确定这种中间件编写方法是否现在不建议使用。通常,可以找到Django文档,但这部分(对我而言)有点令人困惑。
有人可以帮我解决这个问题吗?
解决方法
基本上,responses = self.get_response(request)
之前的代码应处理该请求。 self.get_response()
将从视图中获取响应,然后执行该响应之后的代码。最后,您需要从函数返回响应。这是可视化效果:
class SimpleMiddleware:
def __init__(self,get_response):
self.get_response = get_response
def __call__(self,request):
# Codes here will process the request
# -----------------------------------
response = self.get_response(request)
# -----------------------------------
# Codes here will process the response
return response
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。