我正在用Django编写一些返回json的方法。我自己处理异常,在某些情况下,我希望返回一个带有Json主体的Http 500响应,以便客户机能够提取(除其他外)一个异常uuid。
这在Debug = True中很好,但是当设置为False时,下面的代码会导致html错误页面.
Ret = {"ExceptionId:": "<Exception_uuid>",
"Message": "Some user-friendly error message"}
return HttpResponse(json.dumps(Ret), content_type="application/json", status=INTERNAL_SERVER_ERROR)我知道安全性的影响,这就是为什么这里返回的消息与异常无关,而是由我们自己的代码在引发异常(或在某些情况下提供的一般异常)时生成的。uuid与堆栈跟踪、真正的异常信息等一起记录(理想情况下是数据库,但如果不可能)。当与我们联系时,用户可以引用uuid的异常。
我怎么能强迫django不去干扰我不想要或者不需要的模糊html页面呢?
发布于 2013-04-16 16:09:21
在您的ROOT_URLCONF i.e urls.py中添加一个名为handler500的属性。
urls.py
....
....
handler500 = 'myapp.views.get500handler'myapp/views.py
def get500h(request):
return HttpResponse("A server error ocurred")不要担心我们从get500h()返回的内容,您的用户仍然会看到您返回的json响应。
https://stackoverflow.com/questions/16036802
复制相似问题