本文主要讲解使用HttpResponseRedirect、redirect、reverse以及配置文件中配置URL等重定向方法

本文使用了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) #这样的带参数重定向是可行的。

转载于:https://www.cnblogs.com/wumingxiaoyao/p/8251737.html

Django中多种重定向方法使用相关推荐

  1. django中使用POST方法 获取POST数据

    在django中获取post数据,首先要规定post发送的数据类型是什么. 1.获取POST中表单键值数据 如果要在django的POST方法中获取表单数据,则在客户端使用JavaScript发送PO ...

  2. Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)

    ORM框架简介 ORM框架还可以通过方便的配置就可以进行数据库的切换 进入虚拟环境,创建一个新的项目,django-admin  startproject test2  (test2为项目名) 创建好 ...

  3. Django中遇到的问题以及解决方法

    文章目录 1. SQLite 3.8.3 or later is required (found 3.7.17) 2. ModuleNotFoundError: No module named '_s ...

  4. Windows下在Django中创建项目时ImportError: No module named django.core解决方法

    Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...

  5. 如何在Django中进行调试,好方法? [关闭]

    因此,我开始学习使用Python和更高版本的Django进行编码. 第一次很难查看回溯,实际上要弄清楚我做错了什么以及语法错误在哪里. 现在已经过去了一段时间,而且我想我已经有了调试Django代码的 ...

  6. django中聚合aggregate和annotate GROUP BY的使用方法

    接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...

  7. 如何使cmd的输入和输出重定向到管道中(用这种方法可以将指令写入cmd并抓取输出)

    / //                                                                                      // //      ...

  8. python编程django项目中ModuleNotFoundError: No module named ‘django.core.urlresolvers‘解决方法

    文章目录 遇到的问题 解决方法 参考 遇到的问题 在做<python编程-从入门到实践>书中的项目的时候,遇到No module named 'django.core.urlresolve ...

  9. Django中加载static无法成功的解决方法

    Django中加载static无法成功的解决方法 参考文章: (1)Django中加载static无法成功的解决方法 (2)https://www.cnblogs.com/jianglijian/p/ ...

最新文章

  1. 采用Android的MediaPlayer+SurfaceView设计视频播放器
  2. mysql闪回工具下载_MySQL闪回工具之myflash 和 binlog2sql
  3. Python实现进度条和时间预估的示例代码
  4. 光电显示未连接服务器,T106串口服务器解决方案
  5. 原生 遍历_迭代器模式统一集合的遍历方式
  6. UVA11424 GCD - Extreme (I)【欧拉函数打表】
  7. java并发编程(四) 线程池 任务执行、终止源码分析
  8. 武汉理工大学计算机考研专业代码,武汉理工大学代码及专业代码
  9. 刮刮乐微信html5源码,微信小程序canvas实现刮刮乐效果
  10. 小马哥-----高仿红米note3 市场已出现山寨 警惕 高仿红米note3 J7218刷机外观图与开机识别图
  11. 全球太阳能、风能资源空间分布数据集
  12. 求真值表,主析取范式,主合取范式
  13. 【迭代器】迭代器相应型别
  14. 选择google输入法的理由
  15. 史玉柱深度剖析:民营的13种“死法”
  16. canvas制作旋转的太极图
  17. 全国大中学生体测取消选测 长跑成为必测项目
  18. oca sci 计算机视觉,张启灿
  19. 制作每日疫情通报省份地图
  20. matlab仿真 调频立体声广播,(精编)调频立体声广播系统的建模与仿真

热门文章

  1. silverlight 打开html_Silverlight与HTML集成方法
  2. 河海大学839计算机技术基础,2017年河海大学计算机与信息学院839通信原理考研强化模拟题...
  3. python 博弈论 库_SHAP:Python的可解释机器学习库
  4. Springboot,SSM框架比较,区别
  5. 单片机at指令解析 开源_分享Github上几个开源单片机硬件驱动库
  6. 彩虹物语服务器维护,11.19《彩虹物语》服务器维护及数据互通公告
  7. stream测试内存_.net core百万设备连接服务和硬件需求测试
  8. 测试MM32 MicroPython测试电路板的基本功能
  9. 脚踏板USB接口与无线遥控连接方案论证
  10. Σ-delta ADC是否可以测量热噪声?