Django-自定义中间件

文章目录

  • 第一种方式:函数方式
    • 函数方式定义中间件
      • 1.根目录新建mymiddleware目录(中间件都保存在这个目录下),创建个middleware.py文件写入以下内容
      • 2.在settings.py中注册中间件
      • 3.启动项目访问http://127.0.0.1:8000/查看控制台输出信息
  • 第二种方式:可调用的类的方式
    • 以可调用的类的方式编写中间件
      • 1.修改middleware.py
      • 2.配置中间件
      • 3.启动项目查看控制台信息
      • 4.访问http://127.0.0.1:8000/查看控制台信息
  • 总结


第一种方式:函数方式

函数方式定义中间件

1.根目录新建mymiddleware目录(中间件都保存在这个目录下),创建个middleware.py文件写入以下内容

def middleware_name(get_response):
	# middleware_name:中间件的名字
	#  get_response:Django的固定写法和类的self或者视图函数的request类似

	def middleware(request):
		print('执行这里了')
		# 在这里可以对request进行一些操作
		response = get_response(request)
		return response
	
	# 最后要返回这个函数
	return middleware
Django-自定义中间件_第1张图片

2.在settings.py中注册中间件

Django-自定义中间件_第2张图片

3.启动项目访问http://127.0.0.1:8000/查看控制台输出信息

Django-自定义中间件_第3张图片

第二种方式:可调用的类的方式

以可调用的类的方式编写中间件

1.修改middleware.py

class middleware_name:
   # middleware_name:中间件的名字

   def __init__(self, get_response):
       # 初始化中间件,项目启动时会进行初始化
       print('项目启动了,访问到这里了')
       # get_response这是固定的写法(一般都这样写)
       self.get_response = get_response
       self.str = '你可以在这里初始化一写参数'

   def __call__(self, request):
       print('每一次请求都会经过这里')
       print(self.str)  # 也可以使用init中初始化的参数
       response = self.get_response(request)
       return response
Django-自定义中间件_第4张图片

2.配置中间件

Django-自定义中间件_第5张图片

3.启动项目查看控制台信息

Django-自定义中间件_第6张图片

4.访问http://127.0.0.1:8000/查看控制台信息

Django-自定义中间件_第7张图片

总结

1.两种方式都可以用来定义中间件
2.函数方式:写起来简单

你可能感兴趣的:(Django--学习笔记,django)