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...