HttpResponse(statusu003d<code>) 在 django 中是如何工作的?
·
问题:HttpResponse(statusu003d<code>) 在 django 中是如何工作的?
我正在 django 中试验 HTTP 错误代码,所以我有一个关于HttpResponse(status=<code>)的问题。比如我想发送一个HTTP错误码405,我有如下代码:
def myview(request):
if request.method == 'POST':
...
else:
return HttpResponse(status=405)
我也有这个 HTTP 错误代码 (405.html) 的模板,并将以下代码行放在 urls.py
handler405 = 'handling_error.views.bad_method'
我的 bad_method 视图如下:
def bad_method(request):
datos_template = {}
return render(request, '405.html', datos_template, status=405)
我这样想Django根据HTTP错误代码重定向到正确的模板,但它不起作用,然后:
我做错了什么吗? HttpResponse(statusu003d) 在 django 中是如何工作的?通过 HttpResponse(statusu003d) 发送 HTTP 错误代码的目的是什么?
对不起,很多问题:P
我希望有一个人可以帮助我。
解答
HttpResponse(status=[code])只是在响应的标头中发送实际 HTTP 状态代码的一种方式。它以该状态_code 到达客户端,但除了 HTTP 标头外,不对数据进行任何更改。您可以传递任何带有正常响应的状态代码,它仍会像以前一样显示,但如果您进入浏览器的控制台,您会看到它读取为“405”页面。
HTTP 标头只是随每个请求和响应一起传输,用于 Web 服务器解析并向开发人员提供元数据/信息。甚至404页面也有内容发送,告诉用户有404;如果没有,用户只会得到一个空白页面并且不知道出了什么问题。
如果要表示错误,可以查看这些文档。或者,您可以使用HttpResponseRedirect(参见此处) 选项来定向到提供自定义错误响应的错误视图。
更多推荐

所有评论(0)