错误与重定向响应
出于方便考虑,对于常用的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响应