子类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('/')