溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

django中間鍵重定向?qū)嵗椒?/h1>
發(fā)布時(shí)間:2020-09-02 18:21:52 來(lái)源:腳本之家 閱讀:266 作者:mpython 欄目:開(kāi)發(fā)技術(shù)

1,定義和注冊(cè)中間件

在注冊(cè)的中間件中使用:

from django.http import HttpResponseRedirect

'''下面的書(shū)寫(xiě)方法會(huì)陷入死循環(huán),所以必須加判斷條件只調(diào)用一次'''

def process_request(self,request):

return HttpResponseRedirect('/QQ/test') #可寫(xiě)網(wǎng)站,也可寫(xiě)本地的相對(duì)路徑

2,若要判斷是否包含session,寫(xiě)判斷時(shí)要注意上述方法在重定向會(huì)再調(diào)用一次,所以必須加判斷使重定向只被調(diào)用一次,否則會(huì)陷入死循環(huán)

 內(nèi)容擴(kuò)展

DJANGO中多種重定向方法使用

redirect和reverse

from django.core.urlresolvers import reverse 
from django.shortcuts import redirect 
#https://docs.djangoproject.com/en/1.8.2/topics/http/shortcuts/ 

@login_required 
def update_time(request): 
  #進(jìn)行要處理的邏輯 
  return redirect(reverse('test.views.invoice_return_index', args=[])) #跳轉(zhuǎn)到index界面 

redirect 類(lèi)似HttpResponseRedirect的用法,也可以使用 字符串的url格式 /..index/?a=add
reverse 可以直接用views函數(shù)來(lái)指定重定向的處理函數(shù),args是url匹配的值。

其他

其他的也可以直接在url中配置
from django.views.generic.simple import redirect_to 
在url中添加 (r'^test/$', redirect_to, {'url': '/author/'}), 

#我們甚至可以使用session的方法傳值
request.session['error_message'] = 'test' 
redirect('%s?error_message=test' % reverse('page_index')) 
#這些方式類(lèi)似于刷新,客戶(hù)端重新指定url。

以上就是本次介紹的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的學(xué)習(xí)和對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI