我对一般/ django世界的网络都很陌生。我一直在Http404
为我所有的错误案例提出建议(从我的角度来看)。我认为提高404
, 例如401, 402..
针对不同的错误对我来说更好地检测出了什么问题。
我发现return HttpResponse(status=401)
会做这项工作。但这被认为是可接受的做法吗?我是否应该不干涉状态代码,因为它们中的每一个都应该意味着什么?
我对一般/ django世界的网络都很陌生。我一直在Http404
为我所有的错误案例提出建议(从我的角度来看)。我认为提高404
, 例如401, 402..
针对不同的错误对我来说更好地检测出了什么问题。
我发现return HttpResponse(status=401)
会做这项工作。但这被认为是可接受的做法吗?我是否应该不干涉状态代码,因为它们中的每一个都应该意味着什么?
每个状态码都有特定的含义。有关每个代码的含义,请参阅Wikipedia 页面上的 HTTP 状态代码列表页面。
您应该为每个响应选择适当的状态代码。例如,您应该只401
在客户端未经授权时使用。将您自己的含义分配给状态代码并不是一个好主意。
如果您想让检测错误更容易,您可以设置一个自定义标头:
response = HttpResponse()
response['My-App-Error'] = error_code
return response
是的,您可以子类HttpResponse
化来处理不同类型的 HTTP 响应。更多信息在这里
例如,您可以发送HttpResponse
为status code 403
:
from django.http import HttpResponseBadRequest
def my_view(request):
# ...
return HttpResponseBadRequest('<h1>You are not authorized to view this page</h1>')