欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django中幾種重定向方法

 更新時間:2015年04月28日 11:25:36   投稿:junjie  
這篇文章主要介紹了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匹配這么寫有點不合適,看起來不規(guī)范 
    ​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)

這樣的帶參數重定向是可行的。

相關文章

  • Python面向對象程序設計之類和對象、實例變量、類變量用法分析

    Python面向對象程序設計之類和對象、實例變量、類變量用法分析

    這篇文章主要介紹了Python面向對象程序設計之類和對象、實例變量、類變量用法,結合實例形式分析了Python面向對象程序設計中類和對象、實例變量、類變量具體功能、原理、使用方法與操作注意事項,需要的朋友可以參考下
    2020-03-03
  • 詳解Python map函數及Python map()函數的用法

    詳解Python map函數及Python map()函數的用法

    map() 會根據提供的函數對指定序列做映射。下面通過本文給大家介紹Python map函數及Python map()函數的用法,需要的朋友參考下吧
    2017-11-11
  • Python 編碼規(guī)范(Google Python Style Guide)

    Python 編碼規(guī)范(Google Python Style Guide)

    本項目并非 Google 官方項目, 而是由國內程序員憑熱情創(chuàng)建和維護,對于想學習python的朋友可以參考一下
    2018-05-05
  • Python Scrapy圖片爬取原理及代碼實例

    Python Scrapy圖片爬取原理及代碼實例

    這篇文章主要介紹了Python Scrapy圖片爬取原理及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • python pandas cumsum求累計次數的用法

    python pandas cumsum求累計次數的用法

    這篇文章主要介紹了python pandas cumsum求累計次數的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python 服務器運行代碼報錯ModuleNotFoundError的解決辦法

    python 服務器運行代碼報錯ModuleNotFoundError的解決辦法

    這篇文章主要介紹了python 服務器運行代碼報錯ModuleNotFoundError的解決辦法,幫助大家排除錯誤,正確的運行代碼,感興趣的朋友可以了解下
    2020-09-09
  • Python編程實現正則刪除命令功能

    Python編程實現正則刪除命令功能

    這篇文章主要介紹了Python編程實現正則刪除命令功能,涉及Python針對文件與目錄的正則匹配、刪除等相關操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python去除、替換字符串空格的處理方法

    Python去除、替換字符串空格的處理方法

    這篇文章主要介紹了Python去除、替換字符串空格的處理方法,去除字符串空格有兩種方法,一種是 .replace(' old ',' new '),第二種方法也很簡單,需要的朋友可以參考下
    2018-04-04
  • Python+Tkinter實現RGB數值轉換為16進制碼

    Python+Tkinter實現RGB數值轉換為16進制碼

    這篇文章主要為大家詳細介紹了Python如何利用Tkinter編寫一個RGB數值轉換為16進制碼的小工具,文中的示例代講解詳細,感興趣的小伙伴可以了解一下
    2023-01-01
  • PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果

    PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果

    我想知道是否有一種方法可以在matplotlib上顯示滾動條(水平或垂直),顯示包含多個子槽(sublot2grid)的頁面(plt.show).下面就通過本文給大家分享PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果,對PyQt5 Matplotlib圖像嵌入相關知識感興趣的的朋友一起看看吧
    2021-05-05

最新評論