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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
Python类定义和类继承详解
May 08 Python
分析python切片原理和方法
Dec 19 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
python3+PyQt5实现自定义窗口部件Counters
Apr 20 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
Keras实现将两个模型连接到一起
May 23 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
Python通过字典映射函数实现switch
Nov 06 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 Python
如何用Django处理gzip数据流
Jan 29 Python
Django Paginator分页器的使用示例
Jun 23 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抓取https的内容的代码
2010/04/06 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python处理RSTP视频流过程解析
2020/01/11 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
abstract是什么意思
2012/02/12 面试题
土木工程专业推荐信
2014/02/19 职场文书
房地产广告策划方案
2014/05/15 职场文书
文员求职信
2014/07/15 职场文书
客房服务员岗位职责
2015/02/09 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
公司费用报销管理制度
2015/08/04 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python