中间件是一个挂钩到 Django 的请求/响应处理的框架。它是一个轻量级的低级“插件”系统,用于全局更改 Django 的输入或输出。
中间件工厂是一个可调用对象,它接受一个get_response可调用对象并返回一个中间件。中间件是可调用的,它接受请求并返回响应,就像视图一样。
在这里我会给你我们将帮助你举例说明如何创建一个自定义的 django 中间件。那么让我们看看下面的例子:
第 1 步:创建项目
在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:
django-admin startproject example
第 2 步:创建应用
现在我们将创建一个名为core的应用程序来存储帖子名称列表。我们故意保持基本的东西。使用Control+c停止本地服务器并使用startapp命令创建这个新应用程序。
cd example django-admin startapp core
第 3 步:更新 setting.py
然后在我们的settings.py文件中更新INSTALLED_APPS以通知 Django 有关该应用程序的信息。
settings.py
....
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'core',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'core.middleware.CustomMiddleware' #Add line
]
第 4 步:创建中间件
在这一步中,我们需要在我们的核心应用程序中配置创建一个新的中间件文件。打开 core/middleware.py 文件并添加。
core/middleware.py
class CustomMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print("custom middleware before next middleware/view")
# Code to be executed for each request before
# the view (and later middleware) are called.
response = self.get_response(request)
response.write("<p></p><hr/><div style='color:blue;text-align:center'>Welcome to Tuts-Station.com</div>")
# Code to be executed for each response after the view is called
print("custom middleware after response or previous middleware")
return response
第 5 步:创建视图
在这一步中,我们需要配置视图。打开 core/views.py 文件并添加。
core/views.py
from django.shortcuts import render
# Create your views here.
def my_view(request):
return render(request, 'home.html')
第 6 步:创建模板
接下来,然后使用您的文本编辑器创建新的模板文件:core/templates/home.html文件和添加:
core/templates/home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<div class="container" style="text-align: center;">
<h1>Home</h1>
<p>Django Custom Middleware Example</p>
</div>
</body>
</html>
第 7 步:创建 URL
在本节中,我们需要核心应用程序中的urls.py文件,但 Django 不会使用 startapp 命令为我们创建一个文件。使用文本编辑器创建core/urls.py并粘贴下面的代码。
core/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('home', views.my_view, name='index'),
]
接下来,我们需要为我们的核心应用程序添加一个 URL 路径,这可以通过导入 include 并为其设置路径来完成。
example/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('core.urls')),
]
运行服务器
在此步骤中,我们将运行本地开发服务器来使用我们的应用程序,而无需将其部署到 Web。
python manage.py runserver
接下来,使用 Web 浏览器转到 http://localhost:8000/home 地址。

我希望它能帮助你……
