render()與redirect()的區別 | Django開發
阿新 • • 發佈:2017-10-22
filter com obj .com 失敗 結果 username mini 判斷
!!!!! 今天突然有點懵逼了,竟然出現了實際頁面內容發生了變化,但是url路徑沒有改變,嚇得我的立馬請教了大神!
>>>>>>> 下面是正確代碼,使用了url重定向,驗證成功之後跳轉:
def login(request): # 判斷用戶是否存在 # 在POST請求中獲取用戶名和密碼 message = ‘‘ if request.method == ‘POST‘: user = request.POST.get(‘user‘, ‘‘) pwd= request.POST.get(‘pwd‘, ‘‘) # 創建數據庫對象 obj = models.Administrator.objects.filter(username=user, password=pwd).count() if obj: # 如果登錄成功,將用戶名跟密碼存到服務器session中 request.session[‘is_login‘] = True request.session[‘username‘] = user # request.session[‘password‘] = pwd # 返回視圖到主頁 rep = redirect(‘/index.html‘) return rep # return render(request, ‘index.html‘, {‘username‘:user}) else: message = "登錄失敗!" returnrender(request, ‘login.html‘,{‘mess‘:message})
>>>>>>>> 這個是阿爸敲的:
def login(request): # 判斷用戶是否存在 # 在POST請求中獲取用戶名和密碼 user = request.POST.get(‘user‘, ‘‘) pwd = request.POST.get(‘pwd‘, ‘‘) # 創建數據庫對象 obj = models.Administrator.objects.filter(username=user, password=pwd).count() if obj: # 如果登錄成功,將用戶名跟密碼存到服務器session中 request.session[‘username‘] = user request.session[‘password‘] = pwd # 返回視圖到主頁 return render(request, ‘index.html‘, {‘username‘:user}) else: return render(request, ‘login.html‘)
>>>>>>> 出現的結果是什麽內?
>>>>>>>>>>>>> 這是這個樣子~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
大神就回答了一句:如果驗證成功要用redirect跳轉,不然你實際頁面是發生了變化,但是URL還是沒有變!~
附:想了一下,render()只是對當前訪問模板的加載與渲染,記住!是當前!並不能跳轉!~~~
render()與redirect()的區別 | Django開發