码迷,mamicode.com
首页 > 其他好文 > 详细

中间件

时间:2018-01-29 22:37:40      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:顺序   mixin   分享图片   pos   roc   div   执行   session   user   

    概念:
            中间件是一个类
    
        定义:
            想要对所有的请求做统一操作时,用中间件。(对大量请求中的几个做统一操作时除外)
            只有对少量的视图函数做操作时,用装饰器。
        
        任务:
            1. 对用户请求记录日志(面试不需要说)
            2. 用户登录验证(只有login)
        
        梳理:
            1. 类
                - 继承MiddlewareMixin
                - 两个方法
                    process_request  (返回值可以设置也可不设置)
                    process_response,必须设置返回值
2. 自定义设置中间件步骤
            
          1.在app01下创建middleware文件,再在middleware文件下创建auth.py
          
          2.auth.py文件内容
     
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect,HttpResponse

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

#函数没有返回值时,返回None,表示继续往下执行
#如果有返回值,则执行自己的response以及以上的response。
if request.path_info =="/login1/": return None user_info=request.session.get("user_info") if not user_info: return redirect("/login1/") def process_response(self,request,response): return response    

          3.配置settings中间件   MIDDLEWARE
= [   ...   ‘app01.middleware.auth.M1,    ]
        3
. 示例: 1. 对用户请求记录日志() 2. 用户登录验证 (只有login) 3. 权限验证

     
 4.如果自定义俩个中间件时,请求顺序为
        M1(process_request)-->M2
(process_request)-->...-->M2(process_response)-->M1(process_response)
 

以上操作步骤见下图:

技术分享图片

如果process_request有返回值时:

技术分享图片

 

中间件

标签:顺序   mixin   分享图片   pos   roc   div   执行   session   user   

原文地址:https://www.cnblogs.com/caochao-/p/8379535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!