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 Tkinter基础控件用法
Sep 03 Python
Python+微信接口实现运维报警
Aug 27 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
keras的三种模型实现与区别说明
Jul 03 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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实现给一张图片加上水印效果
2016/01/02 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python实现连接mongodb的方法
2015/05/08 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Linux下python制作名片示例
2018/07/20 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
北承题目(C++)
2012/05/16 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
司马光教学反思
2014/02/01 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
SQL SERVER存储过程用法详解
2022/02/24 SQL Server