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类参数self使用示例
Feb 17 Python
python获取指定网页上所有超链接的方法
Apr 04 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
使用Python绘制图表大全总结
Feb 11 Python
对python3 urllib包与http包的使用详解
May 10 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
Linux下Python安装完成后使用pip命令的详细教程
Nov 22 Python
自学python的建议和周期预算
Jan 30 Python
python实现猜拳小游戏
Apr 05 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 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
php之curl实现http与https请求的方法
2014/10/21 PHP
php使用session二维数组实例
2014/11/06 PHP
Javascript 解疑
2009/11/11 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
document.getElementById介绍
2011/09/13 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
javascript的函数作用域
2014/11/12 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
构建Python包的五个简单准则简介
2015/06/15 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
python实现翻译word表格小程序
2020/02/27 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
物业经理求职自我评价
2013/09/22 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
军训感想500字
2014/02/20 职场文书
食品采购员岗位职责
2014/04/14 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
部门活动策划方案
2014/08/16 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
绿色校园广播稿
2014/10/13 职场文书
排球赛新闻稿
2015/07/17 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
mysql的单列多值存储实例详解
2022/04/05 MySQL