如何编写 Django 中间件?
在 Django 中间件中,主要通过定义一个中间件类来实现。一个中间件类需要实现 __init__
和 __call__
两个方法。
__init__
方法在中间件实例化时被调用,通常用于初始化中间件所需的参数。
__call__
方法在每个请求被处理时被调用,通常用于对请求、响应进行一些处理,或者继续调用后续中间件/视图函数。该方法需要接收一个 request
参数,并返回一个 HttpResponse
对象。
以下是一个简单的中间件示例,它将所有响应头中的 Server
字段替换为 pidancode.com
:
class CustomServerMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): response = self.get_response(request) response['Server'] = 'pidancode.com' return response
中间件类接收一个 get_response
参数,该参数用于调用后续中间件或者视图函数。在 __call__
方法中,先调用 get_response
获取响应对象,然后修改响应头中的 Server
字段后返回。
为了在 Django 中使用该中间件,需要将其添加到 MIDDLEWARE
配置中:
MIDDLEWARE = [ # ... 'path.to.CustomServerMiddleware', # ... ]
通过以上操作,该中间件就会被添加到中间件链中,在每个响应中都会将 Server
字段替换为 pidancode.com
。
相关文章