新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Django4.0教程:Django4.0編寫視圖-自定義報錯視圖
Django 中的默認錯誤視圖應(yīng)該足以滿足大多數(shù) Web 應(yīng)用程序,但如果您需要任何自定義行為,可以輕松覆蓋。 在您的 URLconf 中指定如下所示的處理程序(在其他任何地方設(shè)置它們將無效)。

成都創(chuàng)新互聯(lián)主營吉利網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),吉利h5成都小程序開發(fā)搭建,吉利網(wǎng)站營銷推廣歡迎吉利等地區(qū)企業(yè)咨詢
可以用 ?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'
測試自定義報錯視圖
為了測試自定義報錯處理的響應(yīng),可以適當(dāng)?shù)卦跍y試視圖里引發(fā)異常。例如:
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)
當(dāng)前文章:創(chuàng)新互聯(lián)Django4.0教程:Django4.0編寫視圖-自定義報錯視圖
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/dhishhj.html


咨詢
建站咨詢
