这篇文章将为大家详细讲解有关django怎么实现视图重定向,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联公司专注于井陉矿企业网站建设,成都响应式网站建设,商城开发。井陉矿网站建设公司,为井陉矿等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务当请求访问到某个视图时,我们想让它重定向到其他页面,应该怎么做呢?
1.HttpResponseRedirect
需求:当我们访问127.0.0.1/my_redirect时跳到127.0.0.1/user/index
注意:要注册相应的url
def my_redirect(request): return HttpResponseRedirect('/user/index')
2.redirect
需求:同上
def my_redirect(request): return redirect('/user/index')
3.reversr函数动态生成url地址,解决硬编码维护麻烦的问题(用得较少)
如果你写的视图函数,有一大堆都是重定向到127.0.0.1/user/index的。
那么当你想要改一下它的重定向地址时,让他重定向到127.0.0.1/user/abc。就要一个一个视图函数修改了。这样维护起来是不是特别的麻烦?reverse函数自动生成url地址就可以解决这个问题啦。
(1)当我们在项目的urls.py文件和应用的urls.py文件都设置了url。
项目中的urls.py:
url(r'^user/',include("user.urls",namespace="user")), url(r'^my_redirect',views.my_redirect)
应用的urls.py:
url(r'^index$',views.index,name="index")
视图:
# 重定向 def my_redirect(request): url=reverse("user:index") # 先写namespace的值,再写name的值! return redirect(url)
现在的情形是访问127.0.0.1/my_redirect,直接重定向到127.0.0.1/user/index。
如果想重定向到127.0.0.1/user/abc的话,直接修改应用的urls.py为:
url(r'^abc$',views.my_redirect,name="index")
如果想重定向到127.0.0.1/abc/index的话,直接修改项目的urls.py为:
url(r'^abc/',include("user.urls",namespace="user"))
(2)当我们只在项目的urls.py设置了url。
项目中的urls.py:
url(r'^index',views.index,name="index"), url(r'^my_redirect$',views.my_redirect)
视图:
# 重定向 def my_redirect(request): url=reverse("index") return redirect(url)
现在的情形是访问127.0.0.1/my_redirect时自动跳转到127.0.0.1/index。
如果想重定向到127.0.0.1/abc时,直接修改项目中的urls.py文件为:
url(r'^abc',views.index,name="index")
关于“django怎么实现视图重定向”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。