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中的join()函数的用法
Apr 07 Python
python二分查找算法的递归实现方法
May 12 Python
python flask实现分页效果
Jun 27 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
分享vim python缩进等一些配置
Jul 02 Python
python的常用模块之collections模块详解
Dec 06 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
eclipse创建python项目步骤详解
May 10 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
python生成随机数、随机字符、随机字符串
Apr 06 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
初识ThinkPHP控制器
2016/04/07 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
微信小程序实现搜索历史功能
2020/03/26 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
基于opencv实现简单画板功能
2020/08/02 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
一道Delphi上机题
2012/06/04 面试题
晚会邀请函范文
2014/01/24 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
Python实现仓库管理系统
2022/05/30 Python