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根据txt文本批量创建文件夹
Dec 08 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
python函数不定长参数使用方法解析
Dec 14 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
django中related_name的用法说明
May 20 Python
python中数字是否为可变类型
Jul 08 Python
Django URL参数Template反向解析
Nov 24 Python
Python基础之元组与文件知识总结
May 19 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
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中split方法用法分析
2015/04/17 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Django中的forms组件实例详解
2018/11/08 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
应届护士求职信范文
2014/01/26 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL