1. 程式人生 > >django學習——通過HttpResponseRedirect 和 reverse實現重定向

django學習——通過HttpResponseRedirect 和 reverse實現重定向

用django開發web應用, 經常會遇到從一箇舊的url轉向一個新的url,也就是重定向。

HttpResponseRedirect:建構函式的第一個引數是必要的 — 用來重定向的地址。這些能夠是完全特定的URL地址(比如,’http://www.yahoo.com/search/‘),或者是一個不包含域名的絕對路徑地址(例如, ‘/search/’)。

from django.http import HttpResponseRedirect
from django.views import View

class LoginView(View):
    def post(self, request)
:
... return HttpResponseRedirect("/index/")

還可以通過reverse()對url的name進行解析:

url.py

from django.conf.urls import url
from myapp import views

urlpatterns = [
    url(r'^index/$', views.myview, name='index'),
]

myapp/views.py

from django.http import HttpResponseRedirect
from django.core.urlresolvers import
reverse def myview(request): ... return HttpResponseRedirect(reverse('index'))

而如果url中包含引數,如下型別的url:

url(r'^blog/(?P<blog_id>\d+)/$', BlogDetailView.as_view(), name='blog_id')

如果我們還採用上述方式實現重定向,則會提示缺少一個引數:blog_id。此時需要在reverse()中新增引數:

blog_id = blog.id   #獲取到部落格的id號
return HttpResponseRedirect(reverse
('index', args=(blog_id)))

如果包含多個欄位,可以採用如下形式:

url(r'^blog/(?P<blog_id>\d+)/(?P<user_id>\d+)、$', BlogDetailView.as_view(), name='blog_id')

return HttpResponseRedirect(reverse('index', kwargs={'blog_id': blog_id, 'user_id': user_id}))

相關推薦

django學習——通過HttpResponseRedirect reverse實現定向

用django開發web應用, 經常會遇到從一箇舊的url轉向一個新的url,也就是重定向。 HttpResponseRedirect:建構函式的第一個引數是必要的 — 用來重定向的地址。這些能夠是完全特定的URL地址(比如,’http://www.yahoo

.NET 通過 Autofac DynamicProxy 實現AOP

調用方法 console mage 技術分享 攔截器 抽象 select 攔截 bsp   什麽是AOP?引用百度百科:AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。

InputStream中通過markreset方法復利用緩存

輸出 string sys 都是 實現 源碼 常用 ges 不支持 通過緩存InputStream可重復利用一個InputStream,但是要緩存一整個InputStream內存壓力可能是比較大的。如果第一次讀取InputStream是用來判斷文件流類型,文件編碼等

Django url 標簽reverse()函數的使用(轉)

nth view body alt .com 註意 完全 href def 使用url標簽和reverse()函數,可以避免在模板和view中對url進行硬編碼,這樣即使url改變了,對模板和view也沒有影響, 其實在模板, view中,如果想獲取當前訪問的url,那用r

Angular4.x通過路由守衛進行路由定向實現根據條件跳轉到相應的頁面

spl date() 個人 document ons n) ID exp nav 需求: 最近在做一個網上商城的項目,技術用的是Angular4.x。有一個很常見的需求是:用戶在點擊“我的”按鈕時讀取cookie,如果有數據,則跳轉到個人信息頁面,否則跳轉到註冊或登錄頁面

django學習——通過get_FOO_display 查找模型中的choice值

顯示 查找 isp play 都是 如果 ref char 下拉 在django的models.py 中,我們定義了一些choices的元組,類似一些字典值,一般都是下拉框或者單多選框,例如 0對應男 1對應女等。 class Area(models.Model):

通過MSTPVRRP實現網關備份,以及負載均衡

TP 輸入 watermark ng- 創建 負載 ip add 網絡 現實生活 一、網絡拓撲圖:二、環境搭建:三層交換機、二層交換機、各兩臺,路由器一臺,PC機三臺。三、實驗原理:現實生活中,為了資源的充分利用,往往備份的交換機或者路由器,不只單單充當備份的角色。而是也要

通過pthread_mutex_lockpthread_cond_wait實現生產消費模式,並且生產一次消費一次

#include <stdio.h> #include <pthread.h> /* 生產消費模式 1.生產pdoduct生產一次然後consumer消費一次 */ pthread_mu

通過FileReaderFileWriter實現複製檔案的方法。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px } p.p3 { marg

Spring MVC(三)控制器獲取頁面請求引數以及將控制器資料傳遞給頁面實現定向的方式

首先做好環境配置 在mvc.xml裡進行配置   1.開啟元件掃描   2.開啟基於mvc的標註   3.配置試圖處理器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www

通過transposeflip實現影象旋轉90/180/270度

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Lucene筆記37-Lucene如何通過NRTManagerSearchManager實現近實時搜尋

一、思路分析 如何實現近實時搜尋呢?每次更新完索引都commit?那恐怕太浪費資源了,當資料量非常龐大的時候,幾乎不可能。這裡有兩種方案。 使用SearchManager來管理IndexSearcher物件,當發現索引更新之後,searchManager會呼叫maybeReopen

springboot-通過註解aop實現分散式鎖

一、原因 1、在分散式專案中,使用者觸發插入、更新等操作,我們只需要其中一個服務執行,如果不加分散式鎖,後果很嚴重 二、方法 1、分佈鎖一般通過redis實現,主要通過setnx函式向redis儲存一個key,value等於儲存時的時間戳,並設定過期時間,然後返回true; 2、

c語言通過condmutex實現一個高效能執行緒池

首先說明一下這篇文章其實和我另一篇文章很像,只是另一篇只有一個執行緒,只要講述的是cond和mutex的使用,上面是基於c++實現的,封裝的稍微好一些,路徑: https://blog.csdn.net/FlayHigherGT/article/details/83830956 而下面是

shell 之 tee 命令,實現定向到檔案的同時仍能 通過管道 (|)傳給接下來的命令

在下面的命令中 tee 收到來自 stdin 的資料 ,它將 收到的資料 一份副本寫入檔案 out.txt ,同時將另一份副本作為後續命令的 stdin ,cat -n 將從stdin 中接收到的每一行資料加上行號並 寫入 stdout . $cat a* | tee ou

django學習——python 3.6下實現xadmin

本人在virtualenv中進行django(1.11版本)學習,在安裝xadmin中出現各種問題,安裝總結如下。 1、xadmin的安裝 直接採用 pip install xadmin會報錯,安裝辦法:從官網https://github.com/sshws

通過nsisduilib實現自定義安裝介面

nsis用於實現安裝邏輯,duilib用於實現UI介面 通過nsis呼叫duilib生成的dll庫來實現。現擷取部分duilib程式碼用於展示如何使用duilib編寫程式碼。 cpp檔案如下: #include <windows.h> #i

通過response實現定向(四)

1. 重定向:瀏覽器向伺服器傳送請求,伺服器給它響應302狀態碼,並返回Location值,瀏覽器得到location值後,向ocation值重新發送請求。 2. 伺服器端要做兩件事:     1)狀態碼 要是 302     2)響應頭  location 要指定。響

通用匯入工具類,通過poi反射實現

將檔案從前端上傳到後端,就不說了,我的文章裡面有上傳的,剛開始寫,如果有問題歡迎批評指正首先,先說一下用法,因為之前每增加一個匯入模板就要單獨開發,比較浪費時間,所以單獨搞了個通用類,引數有待解析檔案,輸出的類,欄位陣列,開始行數,然後返回一個List1.我們已經獲取到這個檔

JAVA通過SessionCookie實現網站自動登入的技術

 本方案為我這個站點當前使用的,能用,但不保證是最先進的。 原文:http://www.java2000.net/p1010第一步,登陸的時候一旦選擇了[自動登入]的選項,則需要在登陸成功後,附加下面的程式碼 應為一般網站都提供儲存使用者名稱的功能,所以我把這個寫到了外面。