子类HttpResponseRedirect
当一个逻辑处理完成后,不需要向客户端呈现数据,而是转回到其它页面,如添加成功、修改成功、删除成功后显示数据列表,而数据的列表视图已经开发完成,此时不需要重新编写列表的代码,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。
Django中提供了HttpResponseRedirect对象实现重定向功能,这个类继承自HttpResponse,被定义在django.http模块中,返回的状态码为302。
示例
1)在booktest/views.py文件中定义视图red1,代码如下:
from django.http import HttpResponseRedirect
...
# 定义重定义向视图,转向首页
def red1(request):
return HttpResponseRedirect('/')
2)在booktest/urls.py文件中配置url。
url(r'^red1/$', views.red1),
3)在地址栏中输入网址如下:
http://127.0.0.1:8000/red1/
4)回车后,浏览器地址栏如下图。
重定向简写函数redirect
在django.shortcuts模块中为重定向类提供了简写函数redirect。
1)修改booktest/views.py文件中red1视图,代码如下:
from django.shortcuts import redirect
...
def red1(request):
return redirect('/')