django-中间件

Middleware(中间件)

Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。

每个中间件组件负责执行某些特定功能。例如django中的AuthenticationMiddleware组件,组件 将用户与使用会话的请求相关联。

多个中间件的执行顺序

  • 在请求视图被处理前,中间件由上至下依次执行
  • 在请求视图被处理后,中间件由下至上依次执行

 中间件的定义方法

定义一个中间件工厂函数,然后返回一个可以被调用的中间件。

中间件工厂函数需要接收一个可以调用的get_response对象。

返回的中间件也是一个可以被调用的对象,并且像视图函数一样需要接收一个request对象参数,返回一个response对象。

复制代码
 1 def simple_middleware(get_response):
 2     # 此处编写的代码仅在Django第一次配置和初始化的时候执行一次。
 3 
 4     def middleware(request):
 5         # 此处编写的代码会在每个请求处理视图前被调用。
 6 
 7         response = get_response(request)
 8 
 9         # 此处编写的代码会在每个请求处理视图之后被调用。
10 
11         return response
12 
13     return middleware
复制代码

中间件定义好后需要在setting.py文件中添加注册中间件

复制代码
 1 MIDDLEWARE = [
 2     'django.middleware.security.SecurityMiddleware',
 3     'django.contrib.sessions.middleware.SessionMiddleware',
 4     'django.middleware.common.CommonMiddleware',
 5     # 'django.middleware.csrf.CsrfViewMiddleware',
 6     'django.contrib.auth.middleware.AuthenticationMiddleware',
 7     'django.contrib.messages.middleware.MessageMiddleware',
 8     'django.middleware.clickjacking.XFrameOptionsMiddleware',
 9     'app01.middleware.TestMiddleWare1',       
10     'book.middleware.my_middleware',  # 添加中间件
11 ]
复制代码
posted @   EF果果  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示