django阻止或重定向所有请求

时间:2014-04-25 07:13:11

标签: django signals

我想在django请求/响应模块中临时阻止或重定向所有请求到另一个服务。但是,我确实想在所有服务功能的开头设置控制机制。例如,当请求收入任何宁静的API时,会发送一个sginal request_start。在处理程序中,是否可以阻止这些请求或暂时停止django?

1 个答案:

答案 0 :(得分:1)

如果您只是想按上下文过滤请求(例如通过网址)或拒绝所有请求,那么您可以使用process_request方法编写自己的middleware,在那里可以检查条件并返回None(继续处理)或HttpResponse并重定向/ 404/403(以阻止处理)。

现在,如果您想发送信号或执行任何其他处理,您可以在另一个中间件中执行此操作,只需在MIDDLEWARE_CLASSES中设置正确的顺序("阻止"中间件应该是最后一个)。