利用Django和裝飾器做一個簡單的修改密碼頁面
阿新 • • 發佈:2019-03-24
簡單的 chang 數據 rom 根據 end ict 需要 urn
view視圖代碼:
from django.shortcuts import render,redirect from django.http import HttpResponse # Create your views here. def login_required(view_func): def wrapper(request,*view_args,**view_kwargs): if request.session.has_key(‘islogin‘): return view_func() else: return redirect(‘/login‘) return wrapper def child(request): return render(request,‘booktest/child.html‘) def html_escape(requet): return render(requet,‘booktest/html_escape.html‘,{ ‘content‘:‘<h1>h1標簽<h1>‘ }) def login(request): ‘‘‘顯示登錄頁面‘‘‘ # 判斷用戶是否登錄 if request.session.has_key(‘islogin‘): # 用戶已登錄, 跳轉到首頁 return redirect(‘/change_pwd‘) else: # 用戶未登錄 # 獲取cookie username if ‘username‘ in request.COOKIES: # 獲取記住的用戶名 username = request.COOKIES[‘username‘] else: username = ‘‘ return render(request, ‘booktest/login.html‘, {‘username‘:username}) def login_check(request): ‘‘‘登錄校驗視圖‘‘‘ # request.POST 保存的是post方式提交的參數 QueryDict # request.GET 保存是get方式提交的參數 print(request.method) # 1.獲取提交的用戶名和密碼 username = request.POST.get(‘username‘) password = request.POST.get(‘password‘) remember = request.POST.get(‘remember‘) # 2.進行登錄的校驗 # 實際開發:根據用戶名和密碼查找數據庫 # 模擬: smart 123 if username == ‘smart‘ and password == ‘123‘: # 用戶名密碼正確,跳轉到首頁 response = redirect(‘/change_pwd‘) # 判斷是否需要記住用戶名 if remember == ‘on‘: # 設置cookie username,過期時間1周 response.set_cookie(‘username‘, username, max_age=7*24*3600) # 記住用戶登錄狀態 # 只有session中有islogin,就認為用戶已登錄 request.session[‘islogin‘] = True request.session[‘username‘] = username # 返回應答 return response else: # 用戶名或密碼錯誤,跳轉到登錄頁面 return redirect(‘/login‘) @login_required def change_pwd(request): return render(request,‘booktest/change_pwd.html‘) @login_required def change_pwd_action(request): password = request.POST.get(‘password‘) username = request.session.get(‘username‘) return HttpResponse(‘你的用戶名為:%s密碼為%s‘%(username,password))
利用Django和裝飾器做一個簡單的修改密碼頁面