django中间键的使用

面向切面编码 AOP

  • process_request 在处理url路由之前进行处理逻辑
  • process_response 在响应返回游览器之前使用
  • process_view 在调用视图之前执行
  • process_templates_response 在视图刚好执行完的时候调用

实例:实现cookie的检验
1.创建文件夹 (名字为:utils)
2.在utils文件夹下创建(init.py文件,UserAuthMiddleware.py文件)
如图所示:
这里写图片描述

在UserAuthMiddleware.py文件下代码如下:

from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin

from uauth.models import Users

class AuthMiddleware(MiddlewareMixin):
    def process_request(self,request):

        if request.path == '/uauth/login/'
            return None
        ticket = request.COOKIE.get('ticket')
        if not ticket:
            return HttpResponseRedirect('/uauth/login/')
        users = Users.objects.filter(u_ticket=ticket)
        if not users:
            return HttpResponseRedirect('/uauth/login/')
        return.user = users[0]

这样,除了访问url为 “/uauth/login/”之外的页面,都需要验证游览器中的cookie和数据库中的cookie是否匹配

猜你喜欢

转载自blog.csdn.net/qq_40861391/article/details/80170940