Backend - Django Middleware 中间件
warning:
这篇文章距离上次修改已过188天,其中的内容可能已经有所变动。
Django中间件是一个轻量且强大的方式,用于全局改变Django的输入和输出。它们是在请求的生命周期中的特定点执行的函数,可以在视图被执行前和结果返回后修改行为。
以下是一个简单的自定义Django中间件的例子:
# 在你的 Django 应用的目录中创建一个 middleware.py 文件
# 例如: my_app/middleware.py
from django.utils.deprecation import MiddlewareMixin
class MyCustomMiddleware(MiddlewareMixin):
def __init__(self, get_response=None):
self.get_response = get_response
def __call__(self, request):
# 在这里可以做请求前的处理
# 例如: 请求日志记录、权限校验等
response = self.get_response(request)
# 在这里可以做响应后的处理
# 例如: 响应内容修改、响应头添加等
return response
# 然后在你的 Django 设置文件中 (settings.py) 添加这个中间件
# 例如:
# MIDDLEWARE = [
# ...
# 'my_app.middleware.MyCustomMiddleware',
# ...
# ]
在这个例子中,MyCustomMiddleware
继承了 MiddlewareMixin
类,并重写了 __init__
和 __call__
方法。__init__
方法接受一个可调用对象作为参数,通常是下一个中间件或视图函数。__call__
方法在中间件调用时被执行,它允许在请求被处理前和响应被返回后进行操作。
要在项目中启用这个自定义中间件,你需要将其添加到 MIDDLEWARE
设置列表中。这样,每次请求到达和离开时,Django 都会执行这个中间件的代码。
评论已关闭