重定向分為永久性重定向和暫時性重定向,在頁面上體現的操作是瀏覽器會從一個頁面自動跳轉到另一個頁面。比如,用戶訪問了一個需要權限的頁面,但是該用戶當前沒有登錄,因此我們應該給他重定向到登錄頁面。
永久性重定向:http的狀態碼是301,多用於舊網址被廢棄了,要轉到一個新的網址確保用戶的訪問,最經典的就是京東網站,你輸入:www.jingdong.com的時候,會被重新定向到:www.jd.com。
暫時性重定向:http狀態碼是302,表示頁面的跳轉是暫時性的。比如,用戶訪問了一個需要權限的頁面,但是該用戶當前沒有登錄,應該給他重定向到登錄頁面。這種情況下應該用暫時性重定向。
在django中,重定向是使用redirect(to,*args,permanent=False,**kwargs)來實現的。to是一個url,permanent代表的是這個重定向是否是一個永久的重定向,默認是False。實例代碼如下:
1 from django.http import HttpResponse 2 from django.shortcuts import reverse,redirect 3 4 def profile(request): 5 user = request.user 6 if user: 7 return HttpResponse("歡迎%s,來到個人中心"% user.username) 8 else: 9 return redirect(reverse("user:login"))