Django中多種重定向方法使用詳解
前言
本文使用了Django1.8.2
使用場(chǎng)景,例如在表單一中提交數(shù)據(jù)后,需要返回到另一個(gè)指定的頁(yè)面即可使用重定向方法
一、 使用HttpResponseRedirect
fuhao The first argument to the constructor is required – the path to redirect to. This can be a fully qualified URL or an absolute path with no domain。”參數(shù)可以是絕對(duì)路徑跟相對(duì)路徑”
from django.http import HttpResponseRedirect
@login_required
def update_time(request):
#表單處理OR邏輯處理
return HttpResponseRedirect('/') #跳轉(zhuǎn)到主界面
#如果需要傳參數(shù)
return HttpResponseRedirect('/commons/index/?message=error')
二 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ào)用views中 url對(duì)應(yīng)的方法來(lái)實(shí)現(xiàn)呢,默認(rèn)指定一個(gè)參數(shù)。
#例如view中有個(gè)方法baseinfo_account, 然后另一個(gè)url(對(duì)應(yīng)view方法為blance_account)要重定向到這個(gè)baseinfo_account。
#url中的配置:
urlpatterns = patterns('',
url(r'^index/', 'account.views.index_account'),
url(r'^blance/', 'account.views.blance_account'),
)
# views.py
@login_required
def index_account(request, args=None):
#按照正常的url匹配這么寫(xiě)有點(diǎn)不合適,看起來(lái)不規(guī)范
if args:
print args
return render(request, 'accountuserinfo.html', {"user": user})
@login_required
def blance_account(request):
return index_account(request, {"name": "orangleliu"})
#測(cè)試為:
#1 直接訪(fǎng)問(wèn) /index 是否正常 (測(cè)試ok)
#2 訪(fǎng)問(wèn) /blance 是否能正常的重定向到 /index頁(yè)面,并且獲取到參數(shù)(測(cè)試ok,頁(yè)面為/index但是瀏覽器地址欄的url仍然是/blance)
#這樣的帶參數(shù)重定向是可行的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python動(dòng)態(tài)賦值的陷阱知識(shí)點(diǎn)總結(jié)
在本文中我們給大家整理了關(guān)于Python動(dòng)態(tài)賦值的陷阱的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-03-03
Python中read()、readline()和readlines()方法比較及使用詳解
在Python文件操作中,read()、readline()和readlines()是三個(gè)常用的文件讀取方法,它們各有特點(diǎn),適用于不同的場(chǎng)景,本文將深入探討這三個(gè)方法的區(qū)別、使用場(chǎng)景、性能比較以及最佳實(shí)踐,需要的朋友可以參考下2025-03-03
Python下載網(wǎng)絡(luò)小說(shuō)實(shí)例代碼
這篇文章主要介紹了Python下載網(wǎng)絡(luò)小說(shuō)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
解決pycharm不能自動(dòng)保存在遠(yuǎn)程linux中的問(wèn)題
這篇文章主要介紹了解決pycharm不能自動(dòng)保存在遠(yuǎn)程linux中的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
python中WSGI是什么,Python應(yīng)用WSGI詳解
這篇文章主要介紹一下python中的WSGI, 小編在網(wǎng)上找了幾篇非常好的關(guān)于WSGI介紹,整理一下分享給大家。2017-11-11
Python中的with語(yǔ)句與上下文管理器學(xué)習(xí)總結(jié)
在Python中作為上下文管理器的對(duì)象可以使用with語(yǔ)句,提供上下文管理器的contextlib模塊的使用則是Python編程中的高級(jí)技巧,下面我們就來(lái)詳細(xì)整理一下Python中的with語(yǔ)句與上下文管理器學(xué)習(xí)總結(jié):2016-06-06
對(duì)python Tkinter Text的用法詳解
今天小編就為大家分享一篇對(duì)python Tkinter Text的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python 實(shí)戰(zhàn)開(kāi)發(fā)校園管理系統(tǒng)詳細(xì)流程
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python開(kāi)發(fā)一套校園管理系統(tǒng),包含各種人員,如教師、學(xué)生等。學(xué)校的系統(tǒng)通常還包括一些課程的信息,大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-10-10

