登入的裝飾器

2021-08-20 22:33:58 字數 667 閱讀 3871

def login_decorator(func):

'''這個函式是乙個登入驗證的裝飾器,它還包含了對ajax登入的驗證

:param func: func是對誰去裝飾,這個引數是被裝飾的乙個函式

:return: 裝飾器裝飾過後,返回的乙個新功能函式

'''def login_handler(request,*args,**kwargs):

if request.user.is_authenticated():

return func(request,*args,**kwargs)

else:

if request.is_ajax():#這個方法可以判斷當前的請求是不是ajax請求

return jsonresponse()

url = request.get_full_path()

# request.get_full_path()這個方法可以獲取全的路徑,包含協議和ip、get請求引數

#request.path它獲取的只是路徑部分,不包含協議和ip也不包含get請求引數

ret = redirect(reverse('users:user_login'))

ret.set_cookie('url',url)

return ret

return login_handler

用裝飾器實現登入

login status jingdong false login status weixin false defstart list list1 for i in list print i,list i select num input 請輸入訪問網頁的編號 退出 q if select num ...

Python裝飾器模擬登入系統

裝飾器 import time import random islogin false dict1 def random number n list1 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z co...

Python之Flask登入認證 裝飾器

from flask import flask,render template,request,response,redirect,session,url for usrs 2 3 4 redirect to 重定向到另乙個頁面 subdomain admin 子網域名稱 請求相關的全部在reque...