您好,登錄后才能下訂單哦!
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ì)億速云的支持。
免責(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)容。