如何使用Django Middleware

时间:2012-08-29 07:04:43

标签: django middleware

我想知道,如何使用django中间件,以及它们用于什么?如果没有它们我会做些什么。

不是django的HttpRequest和HttpResponse都应该处理我可能需要的所有事情。

最后,当我开始认为我需要去django的中间件时。

谢谢!

2 个答案:

答案 0 :(得分:4)

简而言之:如果您想要在每个视图之前和/或之后 (即在请求到达您的视图之前或在响应离开之后)发生,请使用中间件

请参阅this question

如果您想在所有视图之前或之后执行非视图特定的操作,请使用它们。 例如。如果你想记录所有请求的URL,你应该使用一个获取request.path并将其写入某处的中间件。

答案 1 :(得分:4)

Django中间件是一种框架功能,可帮助您为所有请求执行相同的操作。你可以把它想象成一个轻量级的低级“插件”系统,用于全局改变Django的输入和/或输出。您可以定义任意数量的中间件,然后使用MIDDLEWARES中的settings.py元组启用它们的任何子集。

更确切地说,中间件是一个具有一些函数的类:process_request,process_view,process_template_response等,django将在特定时间内为每个进程调用其每个函数,例如在代码之前调用process_view。 views.py已执行。

因此,如果您想为所有请求做同样的事情,您可以将中间件视为灵活且强大的选项。要了解有关中间件及其编写方法的更多信息,请参阅:https://docs.djangoproject.com/en/dev/topics/http/middleware/