Django 提供了有关返回 HTTP 错误代码的帮助。HttpResponse
的子类除了200外,还有很多常见的 HTTP 状态代码。返回这些子类中某个子类的实例而不是 HttpResponse
来表示错误。比如:
成都创新互联专注于百色企业网站建设,自适应网站建设,商城网站制作。百色网站建设公司,为百色等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
from django.http import HttpResponse, HttpResponseNotFound
def my_view(request):
# ...
if foo:
return HttpResponseNotFound('Page not found
')
else:
return HttpResponse('Page was found
')
并不是每个可用 HTTP 响应代码都有专门指定的子类,因为它们很多并不常见。然而,如 HttpResponse
文档中所述的那样,你也可以将 HTTP 状态代码传递给 HttpResponse
的构造函数,这样就可以为任何状态代码创建返回类。比如:
from django.http import HttpResponse
def my_view(request):
# ...
# Return a "created" (201) response code.
return HttpResponse(status=201)
因为 404 错误是最常见的 HTTP 错误,这里有更简单的方法来处理这些错误。
当你返回错误,例如 HttpResponseNotFound
,你需要定义错误页面的 HTML 。
return HttpResponseNotFound('Page not found
')
为方便起见,在你的网站里有个一致的 404 错误页面是个好办法,Django 提供 Http404
异常。如果你在视图的任何地方引发了 Http404
,Django 会捕捉到它并且返回标准的错误页面,连同 HTTP 错误代码 404 。
用法示例:
from django.http import Http404
from django.shortcuts import render
from polls.models import Poll
def detail(request, poll_id):
try:
p = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404("Poll does not exist")
return render(request, 'polls/detail.html', {'poll': p})
为了在 Django 返回404时显示自定义的 HTML,你可以创建名为 404.html 的HTML模板,并将其放置在你的模板树顶层。这个模板将在 DEBUG 设为 False
时提供。
当 DEBUG 为 True
时,你可以提供 Http404
信息,并且在标准的 404 调试模板里显示。使用这些信息来调试;它们通常不适合在生产环境下的404模板。
网站名称:创新互联Django4.0教程:Django4.0编写视图-返回错误信息
文章起源:http://www.shufengxianlan.com/qtweb/news24/16074.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联