前言
網上的做法基本都是下面的代碼
1
|
return httpresponseforbidden() |
試了一下,效果一般,沒有異常頁面顯示,最終顯示的是瀏覽器的異常頁面,如下圖:
設置方法如下:
如果要想讓服務器截獲異常并且顯示錯誤頁可以用下面的方式:
1
2
3
4
5
6
|
id = request.get.get( 'id' , '') timestamp = request.get.get( 'timestamp' , '') accesskey = request.get.get( 'accesskey' , '') if timestamp = = ' ' or accesskey == ' ' or id == ' ': raise permissiondenied |
此時訪問就會顯示正常的錯誤頁了,如下
django 錯誤頁面定義方法:
urls.py加入如下代碼:
1
2
3
|
handler403 = permission_denied handler404 = page_not_found handler500 = page_error |
相關view代碼:
1
2
3
4
5
6
7
8
9
10
11
|
# create your views here. def page_not_found(request): return httpresponseredirect( '/static/error_pages/404.html' ) def page_error(request): return httpresponseredirect( '/static/error_pages/500.html' ) def permission_denied(request): return httpresponseredirect( '/static/error_pages/403.html' ) |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.h4ck.org.cn/2018/12/django-主動拋出-403-異常/