我创建了一个简单的重定向中间件
class RedirectMiddleware(object):
def urlredirect(self, request):
path = self.request.build_absolute_uri()
if "something" in path:
URL = "http://www.someurl.com"
else:
URL = "http://www.otherurl.com"
return HttpResponsePermanentRedirect(URL)
但我似乎没有工作,它没有做任何事情,是的,我把它添加到settings.py,任何想法?
答案 0 :(得分:1)
编写自己的中间件很容易。每个中间件组件都是一个 单个Python类,它定义了以下一个或多个方法: process_request
process_request(请求)
request是一个HttpRequest对象。
在Django决定之前,会在每个请求上调用process_request() 哪个视图要执行。它应该返回None或HttpResponse对象。如果它返回 没有,Django将继续处理此请求,执行任何请求 其他process_request()中间件,然后是process_view()中间件, 最后,适当的观点。如果它返回一个HttpResponse 对象,Django不会打扰任何其他请求,视图或 异常中间件或适当的视图;它会应用响应 中间件到那个HttpResponse,并返回结果。