Django 创建自定义中间件示例

在本教程中,我将向您展示如何创建自定义 django 中间件。在本文中,我们将实现一个 django 自定义中间件。本教程将为您提供创建自定义中间件 django 的简单示例。让我们讨论如何在 Django 中创建自定义中间件。

中间件是一个挂钩到 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 地址。

我希望它能帮助你……

发表评论

邮箱地址不会被公开。 必填项已用*标注