国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Django中幾種重定向方法

Django中幾種重定向方法

2020-06-15 09:57腳本之家 Python

這篇文章主要介紹了Django中幾種重定向方法,本文講解了使用HttpResponseRedirect、redirect、reverse以及配置文件中配置URL等方法,需要的朋友可以參考下

這里使用的是django1.5

需求: 有一個界面A,其中有一個form B, 前臺提交B之后,后臺保存數據之后,返回界面A,如果保存失敗需要在A界面提示錯誤。

這里就需要后臺的重定向,而且需要可以帶著參數,也就是error message
這里收集了幾種方法,簡答說下需要那些包,怎么簡單使用。

一、 使用HttpResponseRedirect

The first argument to the constructor is required – the path to redirect to. This can be a fully qualified URL (e.g.'http://www.yahoo.com/search/') or an absolute path with no domain (e.g. '/search/')。 參數既可以使用完整的url,也可以是絕對路徑。

復制代碼 代碼如下:

from django.http import HttpResponseRedirect 
 
@login_required 
def update_time(request): 
    #pass  ...   form處理 
    return HttpResponseRedirect('/commons/invoice_return/index/')  #跳轉到index界面 


如果需要傳參數,可以通過url參數

復制代碼 代碼如下:

return HttpResponseRedirect('/commons/invoice_return/index/?message=error')  #跳轉到index界面 


這樣在index處理函數中就可以get到錯誤信息。

 

二、 redirect和reverse

 

復制代碼 代碼如下:

from django.core.urlresolvers import reverse 
from django.shortcuts import redirect 
#https://docs.djangoproject.com/en/1.5/topics/http/shortcuts/ 
 
@login_required 
def update_time(request): 
    #pass  ...   form處理 
    return redirect(reverse('commons.views.invoice_return_index', args=[]))  #跳轉到index界面 


redirect 類似HttpResponseRedirect的用法,也可以使用 字符串的url格式 /..inidex/?a=add
reverse 可以直接用views函數來指定重定向的處理函數,args是url匹配的值。 詳細請參見文檔

 

三、 其他

其他的也可以直接在url中配置,但是不知道怎么傳參數。

復制代碼 代碼如下:

from django.views.generic.simple import redirect_to


在url中添加 (r'^one/$', redirect_to, {'url': '/another/'}), 

 

我們甚至可以使用session的方法傳值

復制代碼 代碼如下:

request.session['error_message'] = 'test' 
redirect('%s?error_message=test' % reverse('page_index')) 


這些方式類似于location刷新,客戶端重新指定url。
還沒找到怎么在服務端跳轉處理函數,直接返回response到客戶端的方法。

 

2014-11-13 研究:

是不是之前的想法太死板,重定向,如果需要攜帶參數,那么能不能直接調用views中 url對應的方法來實現呢,默認指定一個參數。
例如view中有個方法baseinfo_account, 然后另一個url(對應view方法為blance_account)要重定向到這個baseinfo_account。

url中的配置:

復制代碼 代碼如下:

urlpatterns = patterns('', 
    url(r'^baseinfo/', 'account.views.baseinfo_account'), 
    url(r'^blance/', 'account.views.blance_account'), 

 

復制代碼 代碼如下:


@login_required 
def baseinfo_account(request, args=None): 
    ?#按照正常的url匹配這么寫有點不合適,看起來不規范 
    ?if args: 
        print args 
    return render(request, 'accountuserinfo.html', {"user": user}) 
 
 
@login_required     
def blance_account(request): 
    return baseinfo_account(request, {"name": "orangleliu"}) 

 

 

 

需要測試為:
1 直接訪問 /baseinfo 是否正常 (測試ok)
2 訪問 /blance 是否能正常的重定向到 /baseinfo 頁面,并且獲取到參數(測試ok,頁面為/baseinfo 但是瀏覽器地址欄的url仍然是/blance)
?
這樣的帶參數重定向是可行的。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 激情一级 | 黄色在线观看视频网站 | 国产视频一二三区 | 一区二区三区免费 | 色视频在线免费观看 | 亚洲男人网| 九色porny丨国产精品 | 亚洲人免费视频 | 亚洲va欧美va天堂v国产综合 | 亚洲一区国产 | 99久久久| 国产 日韩 一区 | 欧美一区二区三区在线观看视频 | 91亚洲精品一区 | 黄片毛片在线观看 | 毛片网站大全 | 免费精品 | 精品久久久久久久久久久下田 | 黄色一级免费大片 | 在线观看午夜免费视频 | 国产精品18久久久久久久久久久久 | 91久草视频 | 欧美日韩国产一区二区三区 | 91久久精品日日躁夜夜躁国产 | 人人射在线视频 | 中文字幕在线精品 | 国产在线免费 | 久久99综合久久爱伊人 | 91久久久久久久久久久久久久久久 | av免费网站在线观看 | 日本一区二区三区视频免费看 | 99国产在线 | 免费观看黄色av网站 | 亚洲一区二区三区在线视频 | 精品国产乱码久久久久久蜜柚 | 中文字幕亚洲一区二区va在线 | 久久中文字幕一区 | 欧美精品久久久 | av电影一区二区 | 欧美a在线 | 午夜影视 |