介紹
Django是一個由MTV(Model模型層、Template模板層、View視圖層)框架組成的Python WEB框架,具有高效且開發效率高等特點。
在web應用程序中,跳轉到不同的頁面是經常性要處理的需求,例如表單提交成功後跳轉到顯示成功信息的頁面。Django提供了很多種的跳轉方式,並且可以根據不同的需求選擇不同的跳轉方式。
正文
一、HttpResponseRedirect
在django.http模塊中定義了HttpResponseRedirect類,它表示HTTP重定向。
from django.http import HttpResponseRedirect
def redirect(request):
return HttpResponseRedirect('/index/')
以上代碼實現了將頁面重定向到/index/路徑下。
另外,對於/url/形式的地址,也可以使用絕對地址重定向:
from django.http import HttpResponseRedirect
from django.urls import reverse
def redirect(request):
return HttpResponseRedirect(reverse('index'))
該函數利用reverse反向解析url,重定向到index視圖函數中對應的url。
二、redirect函數
除了HttpResponseRedirect類,Django還提供了redirect函數。
from django.shortcuts import redirect
def redirect(request):
return redirect('/index/')
與HttpResponseRedirect類似,這裡的redirect函數也可以使用reverse反向解析url,實現重定向:
from django.shortcuts import redirect
from django.urls import reverse
def redirect(request):
return redirect(reverse('index'))
這種方式的好處在於,如果url發生改變,僅需要更改urls.py中的定義,而不需要修改各個視圖函數中的重定向地址。
三、HttpResponsePermanentRedirect
HttpResponsePermanentRedirect也是一個HTTP重定向類,和HttpResponseRedirect的區別在於狀態碼不同,HttpResponsePermanentRedirect使用301狀態碼錶示永久移動。
from django.http import HttpResponsePermanentRedirect
def redirect(request):
return HttpResponsePermanentRedirect('/index/')
以上代碼實現了在瀏覽器永久重定向到/index/路徑下。
總結
本文從HttpResponseRedirect、redirect函數以及HttpResponsePermanentRedirect三個角度,詳細闡述了利用Django重定向實現頁面跳轉的方式。開發者可以根據實際需求,選擇適合的重定向方式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/157595.html