程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

2022暑期實踐(Django教程學習記錄)(第四周4)P54用戶注銷

編輯:Python

中間件補充:
自寫的中間件要在setting裡注冊,按注冊的順序執行,
請求進來執行一次,返回響應來執行一次

from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse
class M1(MiddlewareMixin):
def process_request(self, request):
print("M1進來了")
# 沒有返回值,為None可以繼續往下走
return HttpResponse("無權訪問")
def process_response(self, request, response):
print("M1走了")
return response
class M2(MiddlewareMixin):
def process_request(self, request):
print("M2進來了")
def process_response(self, request, response):
print("M2走了")
return response
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',
'app03_phone_number_management.middleware.auth.M1',
'app03_phone_number_management.middleware.auth.M2',
]
class AuthMiddleware(MiddlewareMixin):
# return None就會執行下去
def process_request(self, request):
# 加上可以直接訪問的頁面:、
if request.path_info == "/login":
return
info_dict = request.session.get("info")
if info_dict:
return
#else:
# 這樣重定向會一直死循環報錯-->需要排除可以直接訪問的頁面
# 邏輯有點像物業需要你先證明業主身份才開門但是證明文件在裡面
# return redirect('/login/')

P54用戶注銷

def logout(request):
request.session.clear()
return redirect('/login/')

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved