1

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

难道 django 的 HttpRequest 和 HttpResponse 不足以处理我可能需要的各种事情。

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

谢谢!

4

2 回答 2

6

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

看到这个问题

如果您想在所有视图之前或之后做一些不特定于视图的事情,请使用它们。例如,如果您想记录所有请求的 url,您应该使用获取 request.path 并将其写入某处的中间件。

于 2012-08-29T07:34:49.273 回答
5

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

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

因此,如果您想对所有请求执行相同的操作,您可以将中间件视为一种灵活且强大的选项。要了解有关中间件以及如何编写它们的更多信息,请参阅:https ://docs.djangoproject.com/en/dev/topics/http/middleware/

于 2012-08-29T07:46:26.660 回答