2

我对一般/ django世界的网络都很陌生。我一直在Http404为我所有的错误案例提出建议(从我的角度来看)。我认为提高404, 例如401, 402..针对不同的错误对我来说更好地检测出了什么问题。

我发现return HttpResponse(status=401)会做这项工作。但这被认为是可接受的做法吗?我是否应该不干涉状态代码,因为它们中的每一个都应该意味着什么?

4

2 回答 2

1

每个状态码都有特定的含义。有关每个代码的含义,请参阅Wikipedia 页面上的 HTTP 状态代码列表页面。

您应该为每个响应选择适当的状态代码。例如,您应该只401在客户端未经授权时使用。将您自己的含义分配给状态代码并不是一个好主意。

如果您想让检测错误更容易,您可以设置一个自定义标头

response = HttpResponse()
response['My-App-Error'] = error_code
return response
于 2012-11-20T12:20:24.147 回答
0

是的,您可以子类HttpResponse化来处理不同类型的 HTTP 响应。更多信息在这里

例如,您可以发送HttpResponsestatus code 403

from django.http import HttpResponseBadRequest

def my_view(request):
    # ...


    return HttpResponseBadRequest('<h1>You are not authorized to view this page</h1>')
于 2012-11-20T11:20:20.483 回答