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标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
实例讲解python中的序列化知识点
Oct 08 Python
python实现小球弹跳效果
May 10 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
Pytest测试框架基本使用方法详解
Nov 25 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
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python list转置和前后反转的例子
2019/08/26 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
考博自荐信
2013/10/25 职场文书
将相和教学反思
2014/02/04 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
初中体育课教学反思
2016/02/16 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
MySQL如何构建数据表索引
2021/05/13 MySQL
JavaScript获取URL参数的方法分享
2022/04/07 Javascript