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正则表达式介绍
Aug 06 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
python实现猜数字小游戏
Mar 24 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
python如何快速生成时间戳
Jul 21 Python
python里反向传播算法详解
Nov 22 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python 爬取天气网卫星图片
Jun 07 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版(4)
2006/10/09 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
php压缩文件夹最新版
2018/07/18 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python实现微信远程控制电脑
2018/02/22 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
python使用matplotlib画饼状图
2018/09/25 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
法律系毕业生自荐信范文
2014/03/27 职场文书
高中生班主任评语
2014/04/25 职场文书
长城导游词300字
2015/01/30 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
新闻稿怎么写
2015/07/18 职场文书
VUE递归树形实现多级列表
2022/07/15 Vue.js
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技