Django: 路由与视图 互动版

错误与重定向响应

出于方便考虑,对于常用的HTTP错误响应与重定向响应,django.http包提供了 一些HttpResponse的继承类:

响应类 状态码 说明
HttpResponseRedirect(redirect_to) 302 临时重定向
HttpPermanentRedirect(redirect_to) 301 永久重定向
HttpResponseBadRequest() 400 错误的请求
HttpResponseNotFound() 404 请求的地址没找到
HttpResponseForbidden() 403 没有访问权限
HttpResponseNotAllowed() 405 方法不被允许
HttpResponseGone() 410 请求的地址已失效
HttpResponseServerError() 500 服务器发生错误

例如,可以直接在一个视图函数里返回重定向响应,使前端跳转到redirect_to 参数指定的URL:

def v_index(req):
    return HttpResponseRedirect('/freshman/')

或者当视图处理发生错误时,给出响应的错误响应:

def v_index(req):
    try:
        #sth. maybe wrong
    except:
        return HttpResonseServerError()
修改示例代码,使对/hello/的访问始终返回403响应