django如何实现视图重定向


Posted in Python onJuly 24, 2019

当请求访问到某个视图时,我们想让它重定向到其他页面,应该怎么做呢?

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")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
python之Character string(实例讲解)
Sep 25 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
python super用法及原理详解
Jan 20 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
Python实现一个优先级队列的方法
Jul 31 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 Python
利用python进行数据加载
Jun 20 Python
python字符串分割及字符串的一些常规方法
Jul 24 #Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 #Python
python 判断三个数字中的最大值实例代码
Jul 24 #Python
Django Celery异步任务队列的实现
Jul 24 #Python
python如何统计代码运行的时长
Jul 24 #Python
Django时区详解
Jul 24 #Python
详解Django定时任务模块设计与实践
Jul 24 #Python
You might like
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
用Python实现协同过滤的教程
2015/04/08 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
Python找出9个连续的空闲端口
2016/02/01 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
Sony C++笔试题
2013/03/10 面试题
EJB的几种类型
2012/08/15 面试题
英文自荐信
2013/12/15 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
环保建议书300字
2014/05/14 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
公务员处分决定书
2015/06/25 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技