django 中間件實現登陸攔截器

1.前言

JavaWeb Struts2的攔截器咱們都能很熟悉,在請求交給Action處理以前,先在攔截器中處理,處理完以後再交給Action。 
在Django中如何實現相同的效果?web

2.Django中間件

這個是個人項目的目錄結構。 django

首先,先在app目錄(也就是我項目的web目錄)中新建一個文件命名爲middleware.py 瀏覽器

裏面加入如下代碼:session

from django.shortcuts import render,HttpResponse,redirect,HttpResponseRedirect



try:

    from django.utils.deprecation import MiddlewareMixin  # Django 1.10.x
except ImportError:
    MiddlewareMixin = object  # Django 1.4.x - Django 1.9.x

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

        if request.path != '/login/' and request.path != '/Web/CheckCode/':
            if  request.session.get('user',None):
                pass
            else:
                return HttpResponseRedirect('/login/')

 

在process_request中處理請求,process_response處理響應。 
在process_request方法中,返回值爲HttpResponse類型的對象的時候不交給普通的控制器處理,直接返回給瀏覽器,返回值爲None的時候,請求處理完以後交給普通的控制器處理。 
在settings.py文件的中間件配置中咱們剛剛的中間件。 app

相關文章
相關標籤/搜索