中间件只是功能。
对于process_request
方法:
return direct
,return HttpResponse
,return render
,不会继续向后走,直接执行process_response
函数可以自己定义属于自己的中间件。
# 自行创建一个文件名为 md.py
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse, redirect
class MiddlewareDemo(MiddlewareMixin):
def process_request(self, request):
# 无需做验证,放行
if request.path_info in ['/example'/]:
return
# 获取用户session的信息
userInfo = request.session.get("userInfo")
# 有值,表示已登录,则继续
if userInfo:
return
# 无值
return redirect('/example/')
def process_response(self, request, response):
# 必须得返回
return response
创建好自定义的Middleware之后,需要在settings.py里植入。
MIDDLEWARE = [
....
# 添加下面一行
"utils.md.MiddlewareDemo",
]
中间件的应用场景
HttpResponse("无权访问")
点个赞呗~