django中间键重定向实例方法

yipeiwu_com6年前Python基础

1,定义和注册中间件

在注册的中间件中使用:

from django.http import HttpResponseRedirect

'''下面的书写方法会陷入死循环,所以必须加判断条件只调用一次'''

def process_request(self,request):

return HttpResponseRedirect('/QQ/test') #可写网站,也可写本地的相对路径

2,若要判断是否包含session,写判断时要注意上述方法在重定向会再调用一次,所以必须加判断使重定向只被调用一次,否则会陷入死循环

 内容扩展

DJANGO中多种重定向方法使用

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。

以上就是本次介绍的全部知识点内容,感谢大家的学习和对【听图阁-专注于Python设计】的支持。

相关文章

在Python中使用Neo4j数据库的教程

在Python中使用Neo4j数据库的教程

 一个快速的REST例子 首先来看些基本知识。如果没有服务API,Neo4j就不能支持其他语言。该接口提供一组基于JSON消息格式的RESTful Web服务和一个全面的发现机...

python笔记_将循环内容在一行输出的方法

python笔记_将循环内容在一行输出的方法

例子是输出九九乘法表 如果按照如下程序写: # 输出九九乘法表 for i in range(10): for j in range(1,i+1): print("{}...

python使用ctypes模块调用windowsapi获取系统版本示例

python使用ctypes模块调用windows api GetVersionEx获取当前系统版本,没有使用python32 复制代码 代码如下:#!c:/python27/pyth...

django使用html模板减少代码代码解析

django使用html模板减少代码代码解析

看下面两个页面: 一个显示文章列表,一个显示文章详细信息,其中的部分内容相同,有可以重用的部分。 所有就此例可以设置三个html文件:重用部分,目录部分,文章部分。 重用部分: ba...

django自带serializers序列化返回指定字段的方法

django orm 有个defer方法,指定模型排除的字段。 如下返回的Queryset, 排除‘username', 'id'。 users=models.UserInfo.ob...