Django中多种重定向方法使用详解


Posted in Python onJuly 17, 2019

前言

本文使用了Django1.8.2

使用场景,例如在表单一中提交数据后,需要返回到另一个指定的页面即可使用重定向方法

一、 使用HttpResponseRedirect

fuhao The first argument to the constructor is required ? the path to redirect to. This can be a fully qualified URL or an absolute path with no domain。”参数可以是绝对路径跟相对路径”

from django.http import HttpResponseRedirect 

@login_required 
def update_time(request): 
  #表单处理OR逻辑处理 
  return HttpResponseRedirect('/') #跳转到主界面 
#如果需要传参数
return HttpResponseRedirect('/commons/index/?message=error')

二 redirect和reverse

from django.core.urlresolvers import reverse 
from django.shortcuts import redirect 
#https://docs.djangoproject.com/en/1.8.2/topics/http/shortcuts/ 

@login_required 
def update_time(request): 
  #进行要处理的逻辑 
  return redirect(reverse('test.views.invoice_return_index', args=[])) #跳转到index界面 

redirect 类似HttpResponseRedirect的用法,也可以使用 字符串的url格式 /..index/?a=add
reverse 可以直接用views函数来指定重定向的处理函数,args是url匹配的值。

三、 其他

#其他的也可以直接在url中配置
from django.views.generic.simple import redirect_to 
在url中添加 (r'^test/$', redirect_to, {'url': '/author/'}), 

#我们甚至可以使用session的方法传值
request.session['error_message'] = 'test' 
redirect('%s?error_message=test' % reverse('page_index')) 
#这些方式类似于刷新,客户端重新指定url。

#重定向,如果需要携带参数,那么能不能直接调用views中 url对应的方法来实现呢,默认指定一个参数。
#例如view中有个方法baseinfo_account, 然后另一个url(对应view方法为blance_account)要重定向到这个baseinfo_account。
#url中的配置:
urlpatterns = patterns('', 
  url(r'^index/', 'account.views.index_account'), 
  url(r'^blance/', 'account.views.blance_account'), 
) 
# views.py
@login_required 
def index_account(request, args=None): 
  ​#按照正常的url匹配这么写有点不合适,看起来不规范 
  ​if args: 
    print args 
  return render(request, 'accountuserinfo.html', {"user": user}) 


@login_required   
def blance_account(request): 
  return index_account(request, {"name": "orangleliu"}) 
#测试为:
#1 直接访问 /index 是否正常 (测试ok)
#2 访问 /blance 是否能正常的重定向到 /index页面,并且获取到参数(测试ok,页面为/index但是浏览器地址栏的url仍然是/blance)
#这样的带参数重定向是可行的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python isinstance函数介绍
Apr 14 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 Python
在Python中移动目录结构的方法
Jan 31 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
python多线程扫描端口(线程池)
Sep 04 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
简单介绍django提供的加密算法
Dec 18 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
python中的yield from语法快速学习
Nov 06 Python
Python 求向量的余弦值操作
Mar 04 Python
200行python代码实现2048游戏
Jul 17 #Python
Django后端接收嵌套Json数据及解析详解
Jul 17 #Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 #Python
python代码编写计算器小程序
Mar 30 #Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 #Python
Python Django的安装配置教程图文详解
Jul 17 #Python
python按键按住不放持续响应的实例代码
Jul 17 #Python
You might like
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
PHP入门学习笔记之一
2010/10/12 PHP
Yii学习总结之安装配置
2015/02/22 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python机器学习库常用汇总
2017/11/15 Python
python用插值法绘制平滑曲线
2021/02/19 Python
python中正则表达式与模式匹配
2019/05/07 Python
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
优秀共青团员事迹材料
2014/12/25 职场文书
个人先进材料范文
2014/12/30 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
教学副校长工作总结
2015/08/13 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏