django学习——通过HttpResponseRedirect 和 reverse实现重定向(转载)
生活随笔
收集整理的這篇文章主要介紹了
django学习——通过HttpResponseRedirect 和 reverse实现重定向(转载)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
人分類:?django
https://blog.csdn.net/geerniya/article/details/79021784(原地址)
用django開發web應用, 經常會遇到從一個舊的url轉向一個新的url,也就是重定向。
HttpResponseRedirect:構造函數的第一個參數是必要的 — 用來重定向的地址。這些能夠是完全特定的URL地址(比如,’http://www.yahoo.com/search/‘),或者是一個不包含域名的絕對路徑地址(例如, ‘/search/’)。
from django.http import HttpResponseRedirect from django.views import Viewclass LoginView(View): def post(self, request): ... return HttpResponseRedirect("/index/")- 1
- 2
- 3
- 4
- 5
- 6
- 7
還可以通過reverse()對url的name進行解析:
url.py
from django.conf.urls import url from myapp import viewsurlpatterns = [url(r'^index/$', views.myview, name='index'), ]- 1
- 2
- 3
- 4
- 5
- 6
myapp/views.py
from django.http import HttpResponseRedirect from django.core.urlresolvers import reversedef myview(request): ... return HttpResponseRedirect(reverse('index'))- 1
- 2
- 3
- 4
- 5
- 6
而如果url中包含參數,如下類型的url:
url(r'^blog/(?P<blog_id>\d+)/$', BlogDetailView.as_view(), name='blog_id')- 1
如果我們還采用上述方式實現重定向,則會提示缺少一個參數:blog_id。此時需要在reverse()中添加參數:
blog_id = blog.id #獲取到博客的id號 return HttpResponseRedirect(reverse('index', args=(blog_id)))- 1
- 2
如果包含多個字段,可以采用如下形式:
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}))https://blog.csdn.net/geerniya/article/details/79021784(原地址)
轉載于:https://www.cnblogs.com/wuheng-123/p/9528141.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的django学习——通过HttpResponseRedirect 和 reverse实现重定向(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识vue+elementUi
- 下一篇: bzoj1951 组合数取模 中国剩余定