Django基礎之redirect()


參數可以是:

  • 一個模型: 將調用模型的get_absolute_url()函數
  • 一個視圖, 可以帶有函數: 可以使用urlresolvers.reverse來反向解析名稱
  • 一個絕對的或相對的URL, 將原封不動的作為重定向的位置.

默認返回一個臨時的重定向, 傳遞permanent=True可以返回一個永久的重定向.
示例:
你可以用多種方式使用redirect()函數.
傳遞一個具體的ORM對象(了解即可).
將調用具體ORM對象的get_absolute_url()方法來獲取重定向的URL.

from django.shortcuts import redirect

def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object)

傳遞一個視圖的名稱

def my_view(request):
    ...
    return redirect("some-view-name", foo="bar") 

傳遞要重定向到的一個具體的網址

def my_view(request):
    ...
    return redirect("/some/url/")

當然也可以是一個完整的網址

def my_view(request):
    ...
    return redirect("http://example.com")

默認情況下, redirect()返回一個臨時重定向. 以上所有的形式都接收一個permanent參數; 如果設置為True, 將返回一個永久的重定向:

def my_view(request):
    ...
    object = MyModel.objects.get(...)
    return redirect(object, permanent=True)

 擴展閱讀:

臨時重定向(響應狀態碼: 302)和永久重定向(響應狀態碼: 301)對普通用戶來說是沒什么區別的, 它主要面向的是搜索引擎的機器人。

A頁面臨時重定向B頁面, 那搜索引擎收錄的就是B頁面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM