Django中心件
中心件只是功能。对于process_request方法:
[*]无返回或返回None,哀求继承向后走
[*]有返回值,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",
]
中心件的应用场景
[*]日记,获取访问时,哀求的 IP 地址并记到文件中。
[*]权限校验,有权限返回None,无权限就返回HttpResponse("无权访问")
[*]登录判定,判定用户的session中是否存储信息。
点个赞呗~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]