Django 中的默认错误视图应该足以满足大多数 Web 应用程序,但如果您需要任何自定义行为,可以轻松覆盖。 在您的 URLconf 中指定如下所示的处理程序(在其他任何地方设置它们将无效)。
成都创新互联主营吉利网站建设的网络公司,主营网站建设方案,成都app软件开发,吉利h5成都小程序开发搭建,吉利网站营销推广欢迎吉利等地区企业咨询
可以用 handler404
: 覆盖 page_not_found()
视图:
handler404 = 'mysite.views.my_custom_page_not_found_view'
可以用 handler500
: 覆盖 server_error()
视图:
handler500 = 'mysite.views.my_custom_error_view'
可以用 handler403
: 覆盖 permission_denied()
视图:
handler403 = 'mysite.views.my_custom_permission_denied_view'
可以用 handler400
: 覆盖 bad_request()
视图:
handler400 = 'mysite.views.my_custom_bad_request_view'
为了测试自定义报错处理的响应,可以适当地在测试视图里引发异常。例如:
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.test import SimpleTestCase, override_settings
from django.urls import path
def response_error_handler(request, exception=None):
return HttpResponse('Error handler content', status=403)
def permission_denied_view(request):
raise PermissionDenied
urlpatterns = [
path('403/', permission_denied_view),
]
handler403 = response_error_handler
# ROOT_URLCONF must specify the module that contains handler403 = ...
@override_settings(ROOT_URLCONF=__name__)
class CustomErrorHandlerTests(SimpleTestCase):
def test_handler_renders_template_response(self):
response = self.client.get('/403/')
# Make assertions on the response here. For example:
self.assertContains(response, 'Error handler content', status_code=403)
网页题目:创新互联Django4.0教程:Django4.0编写视图-自定义报错视图
地址分享:http://www.shufengxianlan.com/qtweb/news31/127881.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联