Django 之裝飾器實現登入認證

2022-08-19 07:15:13 字數 1092 閱讀 7877

def check_login(func):  # 自定義登入驗證裝飾器

def warpper(request, *args, **kwargs):

is_login = request.session.get('is_login', false)

if is_login:

func(request, *args, **kwargs)

else:

return redirect("/login")

return warpper

def login_user(request):

if request.method == 'post':

form = loginform(request.post)

if form.is_valid():

all_data = form.clean() #獲取post資料,例如

exist = user.objects.filter(username = all_data['form_username'],password = all_data['form_password']).first()

if exist:

request.session['is_login'] = true #設定session的隨機字段值

request.session['username'] = exist.username #設定uname欄位為登入使用者

return redirect('/home')

else:

return httpresponse("賬戶或密碼錯誤")

else:

form = loginform()

return render(request, 'login.html', )

@check_login

def home(request):

username = request.session.get('uname', false) #獲取登入使用者名稱

return render(request, home.html', ) #使用者名稱渲染到前端頁面

用裝飾器實現登入

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

裝飾器實現使用者驗證登入

在實現使用者驗證的登入的時候可以使用裝飾器工廠產生裝飾器,讓裝飾器得到引數,從而判斷登入型別,並驗證使用者登入條件,實現如下 def login type type def outer f def inner if type qq name input 請輸入使用者名稱 psw input 請輸入密...

Python之Flask登入認證 裝飾器

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