django寫使用者登入判定並跳轉制定頁面

2021-08-28 07:50:55 字數 2219 閱讀 2706

1.首先看要設定登陸的介面 book/view.py

@user_util.my_login    #相當於 select_all=my_login(select_all)

def select_all(request):

# 查詢所有的書

book_list = bookinfo.objects.all()

# 返回

return render(request, 'book/book_list.html', )

@user_util.my_login #相當於 select_by_id=my_login(select_by_id)

def select_by_id(request,book_id):

bookinfo=bookinfo.objects.get(id=book_id)

return render(request,'book/book_detail.html',)

@user_util.my_login 是在utils/user_utils.py裡面寫的裝飾器

使用session判定是否登入:login_user_id = args[0].session.get(『login_user_id』)

#登陸用的裝飾器

def my_login(func):

def inner(*args,**kwargs):

login_user_id = args[0].session.get('login_user_id')

if login_user_id:

return func(*args,**kwargs)

else:

return redirect(reverse('user:login'))

return inner

2.設定登入模組的介面

設定session鍵值對進行儲存: request.session[『login_user_id』]=user[0].id

def login(request):

#獲取cookie

remember_user_name=request.cookies.get('remember_user_name','')

return render(request, "user/login.html",)

def login_handler(request):

# 判斷請求方式

if request.method == "get":

request_info = request.get

else:

request_info = request.post

# 獲取屬性

user_name = request_info.get("user_name",'').strip()

user_pwd = request_info.get("user_pwd",'').strip()

remember = request_info.get("remember")

user_pwd = my_md5(user_pwd)

user=user.objects.filter(name=user_name, pwd=user_pwd)

#print(user[0].id)

# 查詢

if len(user) != 0:

#將登陸資訊儲存到session

#記住使用者名稱

if remember=='1':

resp.set_cookie('remember_user_name',user_name,3600*24*7)

else:

resp.set_cookie('remember_user_name',user_name,0)

return resp

# **

#return book_views.index(request)

# 重定向

django 使用者登入及驗證

1 登入頁面如下 2 登入乙個使用者 從檢視中登入乙個使用者,請使用login 它接受乙個httprequest物件和乙個user物件。login 使用django的會話框架來將使用者的id儲存在會話中。注意任何在匿名會話中設定的資料都會在使用者登入後的會話中都會記住。先呼叫authenticate...

Django實現使用者登入

今天的文章基於之前做的配置,實現乙個具體的功能demo 登入。在login的templates目錄下建立兩個模板,分別是login.html和home.html,當使用者未登入時,跳轉到login.html頁面,登陸成功或者登入狀態,跳轉到home.html。url的配置主要有兩個,django d...

django 使用者登入 退出demo

實現乙個具體的功能demo 登入 退出。當然,其實除了登入還有很多東西。這裡只是把系統登入退出部分功能拆解下來。在login的templates目錄下建立兩個模板,分別是login.html和index.html,當使用者未登入時,跳轉到login.html頁面,登陸成功或者登入狀態,跳轉到inde...