如何使用 Django 中间件

sec*_*rve 1 django middleware

我想知道,如何使用django中间件,它们的用途是什么?什么事情我不能没有他们。

django 的 HttpRequest 和 HttpResponse 不是足以处理我可能需要的各种事情吗?

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

谢谢!

Don*_*Don 6

简而言之:如果您希望在每个视图之前和/或之后总是发生某些事情(即在请求到达您的视图之前或响应离开它们之后),请使用中间件。

看到这个问题

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


Ami*_*ari 5

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/