1. 程式人生 > >render()與redirect()的區別 | Django開發

render()與redirect()的區別 | Django開發

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 = "登錄失敗!" return
render(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開發