[Django]几种重定向的方式

这里使用的是django1.5

需求: 有一个界面A,其中有一个form B, 前台提交B之后,后台保存数据之后,返回界面A,如果保存失败需要在A界面提示错误。

这里就需要后台的重定向,而且需要可以带着参数,也就是error message

这里收集了几种方法,简答说下需要那些包,怎么简单使用。

一、 使用HttpResponseRedirect

The first argument to the constructor is required – the path to redirect to. This can be a fully
qualified URL (e.g.‘http://www.yahoo.com/search/‘)
or an absolute path with no domain (e.g. ‘/search/‘)。
参数既可以使用完整的url,也可以是绝对路径。

from django.http import HttpResponseRedirect

@login_required
def update_time(request):
    #pass  ...   form处理
    return HttpResponseRedirect('/commons/invoice_return/index/')  #跳转到index界面

如果需要传参数,可以通过url参数

return HttpResponseRedirect('/commons/invoice_return/index/?message=error')  #跳转到index界面

这样在index处理函数中就可以get到错误信息。

二、 redirect和reverse

from django.core.urlresolvers import reverse
from django.shortcuts import redirect
#https://docs.djangoproject.com/en/1.5/topics/http/shortcuts/

@login_required
def update_time(request):
    #pass  ...   form处理
    return redirect(reverse('commons.views.invoice_return_index', args=[]))  #跳转到index界面

redirect 类似HttpResponseRedirect的用法,也可以使用 字符串的url格式 /..inidex/?a=add

reverse 可以直接用views函数来指定重定向的处理函数,args是url匹配的值。 详细请参见文档

三、 其他

其他的也可以直接在url中配置,但是不知道怎么传参数。

from django.views.generic.simple import redirect_to
在url中添加 (r'^one/$', redirect_to, {'url': '/another/'}),

我们甚至可以使用session的方法传值

request.session['error_message'] = 'test'
redirect('%s?error_message=test' % reverse('page_index'))

这些方式类似于location刷新,客户端重新指定url。

还没找到怎么在服务端跳转处理函数,直接返回response到客户端的方法。

[Django]几种重定向的方式

时间: 2024-10-07 17:42:13

[Django]几种重定向的方式的相关文章

LVS:三种负载均衡方式比较+另三种负载均衡方式

转:http://blog.csdn.net/u013256816/article/details/50705578 什么是LVS? ??首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修

LVS:三种负载均衡方式比较

转载于http://soft.chinabyte.com/25/13169025.shtml 1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序

LVS-三种负载均衡方式比较

原 荐 LVS-三种负载均衡方式比较 发表于2年前(2014-07-25 11:46)   阅读(1551) | 评论(2) 29人收藏此文章, 我要收藏 赞1 1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整

Jsp 四种跳转方式

四种跳转方式 request.getRequestDispacher().forward()跳转: (1)服务器端跳转. (2)执行后立即跳转. <jsp:forward>跳转: (1)实际上是对上面 forward 方法的封装,属于服务器端跳转,跳转之后地址栏不改变. (2)执行到后立刻跳转.跳转之前的语句会执行,跳转之后的语句将不会执行.如果在 JSP 中使用了 JDBC 的话,必须在跳转之前进行数据库的关闭,否则数据库将无法关闭. response.sendRedirect()跳转: (

Servlet 两种跳转方式

response.sendRedirect , // 重定向,服务器端将uri返回到客户端,客户端再次发送请求. RequestDispatcher  rd  =  getServletContext().getRequestDispatcher("/login.jsp"); rd.forward(request,response);  //跳转,直接从服务器端访问 uri Servlet 两种跳转方式

事务的隔离级别 另一种事务开启方式

事务是有隔离级别 read uncommited (读未提交):不做任何隔离,具有脏读,不可重读对,幻读的问题 read committed (读提交):可以防止脏读,不能防止不可重复读和幻读的问题 repeated read(可重复读):可以防止脏读,不可重复读,不能放在幻读(mysql的默认隔离级别) serializable(串行化):数据库运行为串行,以上问题都可以防止,但是性能低 下面的解释都用这个user表 脏读(a,b同时开始事务,a,b再事务,没有哪一个结束,只有两个都进入事务后

ASP.NET MVC下的四种验证编程方式[续篇]

在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注ValidationAttribute特性"."让数据类型实现IValidatableObject或者IDataErrorInfo"),那么在ASP.NET MVC框架内部是如何提供针对这四种不同编程方式的支持的呢?接下来我们就来聊聊这背后的故事. 一.ModelValidator与ModelVal

android五种数据存储方式

在Android中提供了如下五种数据存储方式: SharedPreferences 文件存储 SQLite数据库方式 内容提供器(ContentProvider) 网络存储 下面具体介绍一下这五种数据存储方式的用法. 1. SharedPreferences SharedPreferences是android平台上的一个轻量级存储类,主要保存一些常用的配置信息.可以保存long.int.String类型数据. SharedPreferences以键值对方式读取和存入,最终会以XML方式保存数据,

HBuilder开发App教程08-几种页面打开方式

说明 上节说了list页面的实现,其中关于几种页面的打开方式没有详细述说, 本节详细述说下几种页面打开方式的区别. 几种打开页面的方式 1.初始化时创建子页面 2.直接打开新页面 3.预加载页面 示例 1.初始化时创建子页面 mui.init({ subpages: [{ url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址 id: your - subpage - id, //子页面标志 styles: { top: subpage - top