您的位置:首页 > 编程语言 > Go语言

Django 中间件

2021-05-05 20:46 106 查看 https://blog.51cto.com/jackor/

1.django 的中间件,从代码角度上来看,本质上是闭包的一种实现
中间件的作用:验证是否登录、处理每次访问的日志 等等。
官方参考文档

 

2.django 的中间件执行时机: 在每次的请求和响应都会执行

 

3.多个中间件时,执行的顺序是:
a.在请求视图被处理前,中间件由上至下依次执行
b.在请求视图被处理后,中间件由下至上依次执行

 

4.代码实现
a.中间件代码文件可以随意放置,我将其放到应用的文件夹里面

 

b.app01.middleware.py

def simple_middleware1(get_respone):
# 这里的代码只有第一次请求才会执行,后续再请求就不会再执行了
# print('simple_middleware1: 第一次请求才会打印,我们的请求到达时,我都不会打印了')

def middleware(request):

# 处理请求到达前的代码
print('simple_middleware1: 收到请求了')

response = get_respone(request)

# 处理请求被响应后的代码
print('simple_middleware1: 请求响应完了')

return response

return middleware

def simple_middleware2(get_respone):
# 这里的代码只有第一次请求才会执行,后续再请求就不会再执行了
# print('第一次请求才会打印,我们的请求到达时,我都不会打印了')

def middleware(request):
# 处理请求到达前的代码
print('simple_middleware2: 收到请求了')

response = get_respone(request)

# 处理请求被响应后的代码
print('simple_middleware2: 请求响应完了')

return response

return middleware

 

c.在项目的配置文件中注册自定义的中间件

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',

# 注册自定义的中间件
'app01.middleware.simple_middleware1',
'app01.middleware.simple_middleware2',
]

d.请求结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: