Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django中间件有哪些


Django 中间件是在请求和响应处理过程中执行的插件。它们允许在处理视图之前或之后进行全局处理,例如身份验证、日志记录、错误处理等。下面是一些常见的 Django 中间件,以及它们的简要描述和示例代码:

AuthenticationMiddleware(身份验证中间件)

简要描述: AuthenticationMiddleware 用于处理用户身份验证。它在请求阶段将当前用户附加到请求对象,并允许您在视图中访问用户信息。

示例代码:



# settings.py
MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    # ...
]

# views.py
from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    # 只有登录用户才能访问这个视图
    # 可以通过request.user访问当前登录的用户对象
    # 例如:request.user.username、request.user.email等
    # ...


CorsMiddleware(跨域资源共享中间件)

简要描述: CorsMiddleware 用于处理跨域资源共享,允许跨域访问资源。当前端代码(例如 JavaScript )从不同的域或端口请求数据时,需要使用此中间件来处理跨域请求。

示例代码:



# settings.py
MIDDLEWARE = [
    # ...
    'corsheaders.middleware.CorsMiddleware',
    # ...
]

# 安装 django-cors-headers 库并设置允许的来源域
CORS_ALLOWED_ORIGINS = [
    "https://example.com",
    "http://localhost:3000",
]

# views.py
def my_api_view(request):
    # 在此处理响应数据
    # ...


LoggingMiddleware(日志记录中间件)

简要描述: LoggingMiddleware 用于记录请求和响应的信息,便于调试和监控应用程序行为。

示例代码:



# settings.py
MIDDLEWARE = [
    # ...
    'django.middleware.common.CommonMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 自定义的LoggingMiddleware
    'myapp.middleware.LoggingMiddleware',
]

# middleware.py
import logging

class LoggingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # 在处理视图前执行的代码
        logger = logging.getLogger('django')
        logger.info(f"Request Method: {request.method}, Path: {request.path}")

        response = self.get_response(request)

        # 在处理视图后执行的代码
        logger.info(f"Response Status Code: {response.status_code}")

        return response


以上是一些常见的 Django 中间件及其简要描述和示例代码。请注意,示例代码中的中间件可能是自定义的或 Django 内置的。您可以根据项目的需求选择使用适合的中间件,或者创建自己的中间件来满足特定的功能和需求。

Django是一个流行的PythonWeb框架,它内置了许多强大的组件和功能,用于简化Web应用程序的开发。html模板示例:Django表 ...
Django中间件是一种机制,用于在处理HTTP请求和响应的过程中,提供对Django框架的访问和控制。中间件的定义Django中间件是一个 ...
以下是Django默认中间件的列表以及每个中间件的简要解释:django.AuthenticationMiddleware:Authenti ...
在Django中,中间件是一种功能强大的机制,用于在处理请求和响应过程中插入自定义的处理逻辑。process_exception方法当视图函 ...
在Django中,中间件(Middleware)是一种用于处理HTTP请求和响应的插件机制。下面是一个简单的示例,展示如何实现一个中间件来记 ...