django 사용자 정의 오류 응답
Django에서는 기본적으로 다음과 같은 일반적인 오류 처리 방법을 제공합니다.
handler404 = 'polls.views.my_custom_page_not_found_view'
handler500 = 'polls.views.my_custom_error_view'
handler403 = 'polls.views.my_custom_permission_denied_view'
handler400 = 'polls.views.my_custom_bad_request_view'
handler*명칭은 모두 고정되어 있어서 임의로 변경할 수 없습니다.Django는 이미 약속한 상태코드에 따라 서로 다른 오류에 대응합니다.그리고 이 설정들은 프로젝트 입구의 urls에 기록해야 합니다.py 파일에서 응용 프로그램의urls에 쓸 수 없습니다.py 파일에서, 그렇지 않으면 효력이 발생하지 않습니다.값에 대해 좋은 보기 함수를 도입하고 절대 경로를 써야 합니다.
응용 프로그램urls를 왜 씁니까?py 파일이 유효하지 않습니까?프로그램이 Http404 이상을 던졌을 때, Django는 404 오류를 처리하는 특별한view 방법을 불러오기 때문입니다.기본적으로, 이것은django입니다.views.defaults.page_not_found, 불러오기 및 렌더링 404.html 템플릿 파일.이것은 우리가 템플릿 루트 디렉터리에 404.를 정의해야 한다는 것을 의미한다.html 템플릿 파일, 이 템플릿 파일은 모든 404 이상에 적용됩니다.
다음은 404 이상 처리를 정의합니다.
먼저 루트urlconf에서handler404 처리 논리를 다음과 같이 설정합니다.
handler404 = "mysite.views.page_not_found" #mysite app ,views app views.py , page_not_found
# : urlconf 。
그리고 대응하는 app 아래에 함수를 정의합니다. 위에는 mysite 이 app 아래에 정의된views입니다.py에 있습니다.
from django.http import HttpResponseNotFound
def page_not_found(request):
return HttpResponseNotFound("Fucking!")
그리고 django의 debug 모드를 닫고 ALLOWED 를 정의해야 합니다.HOSTS 옵션.
DEBUG = False
ALLOWED_HOSTS = ["*"]
그리고django를 시작해서 존재하지 않는 페이지에 접근합니다.
[root@test2 ~]# curl 172.16.100.19:80/werwer/
Fucking!
여기에 우리는 문자열 하나만 되돌려 주었을 뿐, 자연히 완전한 html 페이지도 되돌려 줄 수 있다.
전재 대상:https://www.cnblogs.com/wxzhe/p/10314796.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.