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合并两个字典的常用方法与效率比较
Jun 17 Python
解析Python编程中的包结构
Oct 25 Python
Python 内置函数complex详解
Oct 23 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
使用python将图片按标签分入不同文件夹的方法
Dec 08 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
python软件都是免费的吗
Jun 18 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
php foreach循环中使用引用的问题
2013/11/06 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Python的in,is和id函数代码实例
2020/04/18 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
材料采购员岗位职责
2013/12/17 职场文书
班干部演讲稿
2014/04/24 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
档案接收函格式
2015/01/30 职场文书
党员年度个人总结
2015/02/14 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL