亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django中間件攔截未登錄url實(shí)例詳解

 更新時(shí)間:2019年09月03日 14:40:22   作者:凌晨4點(diǎn)的太陽  
在本篇文章里小編給各位整理了關(guān)于Django中間件攔截未登錄url的實(shí)例內(nèi)容以及相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。

1.利用裝飾器在視圖中攔截未登錄的url

@login_required(login_url='/user/login/')
def homepage(request):
  pass

這種方法適合于程序中只有少數(shù)幾個(gè)需要登錄攔截的url。

2. 利用中間件技術(shù)攔截未登錄的url

2.1 在settings.py添加MIDDLEWARE設(shè)置:middleware.LoginCheckMiddleware

MIDDLEWARE = [
  'django.middleware.security.SecurityMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  # 'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
  # url登錄攔截中間件
  'middleware.LoginCheckMiddleware',
]

2.2 在項(xiàng)目目錄下創(chuàng)建middleware.py文件,文件中創(chuàng)建攔截類:LoginCheckMiddleware

import re
from django.http import JsonResponse
from django.shortcuts import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin

class LoginCheckMiddleware(MiddlewareMixin):
  def process_request(self, request): 
    # | 分隔要匹配的多個(gè)url,從左到右匹配,有匹配就返回匹配值,否則返回None。
    pattern = r'^(/$|/user/user/[0-9]+/$|/user/user/$|/user/getuserall|/user/get_token_code|/user/update_phone_no|/stock|/future)'

    # 如果 request.path 的開始位置能夠找到這個(gè)正則樣式的任意個(gè)匹配,就返回一個(gè)相應(yīng)的匹配對(duì)象。
    # 如果不匹配,就返回None
    match = re.search(pattern, request.path)
    # 需要攔截的url
    if match and not request.user.is_authenticated:
      print('用戶未登錄URL攔截 >>: ', request.path)
       # 主頁未登錄
      if request.path == '/':
        return HttpResponseRedirect('/user/login/')
      # ajax請(qǐng)求未登錄
      else:
        return JsonResponse({'status': False, 'info': '用戶未登錄!'})

應(yīng)用了正則表達(dá)式過濾需要攔截的url。

由于ajax請(qǐng)求不能重定向,所以對(duì)于ajax請(qǐng)求的url攔截返回json數(shù)據(jù),由前端處理返回的結(jié)果。

以上就是本次介紹的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。

相關(guān)文章

  • Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解

    Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解

    這篇文章主要介紹了Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python將unicode和str互相轉(zhuǎn)化的實(shí)現(xiàn)

    python將unicode和str互相轉(zhuǎn)化的實(shí)現(xiàn)

    這篇文章主要介紹了python將unicode和str互相轉(zhuǎn)化的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 樹莓派+攝像頭實(shí)現(xiàn)對(duì)移動(dòng)物體的檢測

    樹莓派+攝像頭實(shí)現(xiàn)對(duì)移動(dòng)物體的檢測

    這篇文章主要為大家詳細(xì)介紹了樹莓派+攝像頭實(shí)現(xiàn)對(duì)移動(dòng)物體的檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python繪圖之柱形圖繪制詳解

    Python繪圖之柱形圖繪制詳解

    這篇文章主要介紹了Python繪圖之柱形圖繪制詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python opencv鼠標(biāo)交互操作的實(shí)用指南

    python opencv鼠標(biāo)交互操作的實(shí)用指南

    最近的工作經(jīng)常需要對(duì)圖像進(jìn)行操作,也需要用鼠標(biāo)對(duì)圖像進(jìn)行各種操作,所以下面這篇文章主要給大家介紹了關(guān)于python opencv鼠標(biāo)交互操作的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • python自動(dòng)化測試selenium核心技術(shù)等待條件教程

    python自動(dòng)化測試selenium核心技術(shù)等待條件教程

    這篇文章主要為大家介紹了python自動(dòng)化測試selenium核心技術(shù)等待條件教程的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • python實(shí)現(xiàn)單鏈表中刪除倒數(shù)第K個(gè)節(jié)點(diǎn)的方法

    python實(shí)現(xiàn)單鏈表中刪除倒數(shù)第K個(gè)節(jié)點(diǎn)的方法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)單鏈表中刪除倒數(shù)第K個(gè)節(jié)點(diǎn)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python中csv文件的若干讀寫方法小結(jié)

    python中csv文件的若干讀寫方法小結(jié)

    今天小編就為大家分享一篇python中csv文件的若干讀寫方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目的實(shí)現(xiàn)步驟

    Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目的實(shí)現(xiàn)步驟

    本文主要介紹了Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目,包括設(shè)置Python環(huán)境、安裝Flask庫以及創(chuàng)建基本的項(xiàng)目結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Python使用Selenium進(jìn)行Web自動(dòng)化測試

    Python使用Selenium進(jìn)行Web自動(dòng)化測試

    Selenium 是一個(gè)用于 Web 應(yīng)用自動(dòng)化測試的強(qiáng)大工具,可以用來模擬用戶操作瀏覽器,從而測試 Web 應(yīng)用的功能,它支持多種瀏覽器和編程語言,包括 Python,下面我們將介紹如何使用 Selenium 進(jìn)行 Web 自動(dòng)化測試,需要的朋友可以參考下
    2024-08-08

最新評(píng)論