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 相关文章推荐
python正则表达式re模块详细介绍
May 29 Python
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
Python最小二乘法矩阵
Jan 02 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
python 操作hive pyhs2方式
Dec 21 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
python多进程下的生产者和消费者模型
May 07 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
django注册用邮箱发送验证码的实现
Apr 18 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分页集合包括使用方法
2013/10/21 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
自主招生自荐信格式
2013/12/03 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
关于期中考试的反思
2014/02/02 职场文书
单位未婚证明范本
2014/11/25 职场文书
考研英语复习计划
2015/01/19 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA