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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
从零学Python之入门(二)基本数据类型
May 25 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
理解Python中的类与实例
Apr 27 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
Django forms组件的使用教程
Oct 08 Python
python调用java的jar包方法
Dec 15 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
pygame实现飞机大战
Mar 11 Python
深入了解NumPy 高级索引
Jul 24 Python
Python常遇到的错误和异常
Nov 02 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
php的debug相关函数用法示例
2016/07/11 PHP
js 遍历对象的属性的代码
2011/12/29 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
js选项卡的制作方法
2017/01/23 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
python爬虫之自制英汉字典
2019/06/24 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python 实用工具状态机transitions
2020/11/21 Python
生日主持词
2014/03/20 职场文书
日化店促销方案
2014/03/26 职场文书
疾病防治方案
2014/05/31 职场文书
语文教育专业求职信
2014/06/28 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
武侯祠导游词
2015/02/04 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
聊聊JS ES6中的解构
2021/04/29 Javascript
mysql函数之截取字符串的实现
2022/08/14 MySQL
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers