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使用BeautifulSoup分析网页信息的方法
Apr 04 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
Python实现图片转字符画的示例
Aug 22 Python
python实现维吉尼亚加密法
Mar 20 Python
python浪漫表白源码
Apr 05 Python
python中的句柄操作的方法示例
Jun 20 Python
jupyter notebook 中输出pyecharts图实例
Apr 23 Python
django重新生成数据库中的某张表方法
Aug 28 Python
Django异步任务线程池实现原理
Dec 17 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 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
Laravel模型事件的实现原理详解
2018/03/14 PHP
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS的数组迭代方法
2015/02/05 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
简单实现js轮播图效果
2017/07/14 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
学习python 之编写简单乘法运算题
2016/02/27 Python
Python生成随机数组的方法小结
2017/04/15 Python
基于Python的关键字监控及告警
2017/07/06 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
python实现电子书翻页小程序
2019/07/23 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
无财产无子女离婚协议书范文
2014/09/14 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2014年英语工作总结
2014/12/20 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
文书工作总结(范文)
2019/07/11 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
php+laravel 扫码二维码签到功能
2021/05/15 PHP
react 项目中引入图片的几种方式
2021/06/02 Javascript