Django(장고) - 에러(Error) 페이지 처리
(1). Step1 - DEBUG(디버그) 모드 종료
① DEBUG = True 일 경우 : 웹 서버의 정보가 브라우저에 노출 되므로 실 서버 배포시는 반드시 DEBUG = False
② 서버쪽에서 자체 에러 페이지를 보여주기 때문에 에러 핸들러(Handler) 를 등록해야 한다.
③ 2가지 작업은 setting.py, urls.py 두 파일에서 작업한다.
1
2
3
4
5
6
7
8 |
// settings.py
DEBUG = False #디버그 모드를 Disable 하자.
.........
.........
|
cs |
(2). Step2 - 핸들러(Handler) 등록
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
// urls.py
from django.conf.urls import (
handler400, handler404, handler500
)
# 본인 프로젝트 패키지명 사용
# 디폴트1 : django.views.defaults.bad_request
# 디폴트2 : django.views.defaults.page_not_found
# 디폴트3 : django.views.defaults.server_error
handler400 = 'eunki7.vlews.bad_request_page'
handler404 = 'eunki7.vlews.page_not_found_page'
handler500 = 'eunki7.vlews.server_error_page'
# 참고 공식 레퍼런스 : https://docs.djangoproject.com/ko/1.11/ref/urls/
|
cs |
(3). Step3 - 뷰(view) 파일 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 |
// views.py
# urls.py 에서 등록한 핸들러명과 같은 메소드(Method)명 매핑
# 본인 에러 파일(html) 사용
# 참고 공식 레퍼런스 : https://docs.djangoproject.com/ko/1.11/ref/urls/
from django.shortcuts import render_to_response, render
from django.template import RequestContext
# 400에러(Error)
def bad_request_page(request) :
response = render_to_response('eunki7/error_400_page.html', {},
context_instance=RequestContext(request))
response.status_code = 400
return response
# 404에러(Error)
def page_not_found_page(request) :
response = render_to_response('eunki7/error_404_page.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
# 500에러(Error)
def server_error_page(request) :
response = render_to_response('eunki7/error_500_page.html', {},
context_instance=RequestContext(request))
response.status_code = 500
return response
|
cs |
(4). 결과 화면
'웹 백엔드 > Django & Flask' 카테고리의 다른 글
Django(장고) - 로깅(Logging) 설정 및 DB SQL 쿼리(Query) 확인 (0) | 2019.02.14 |
---|---|
Flask(플라스크) - 파이썬 Flask 기본 템플릿(template) 예제 및 소스파일 (1) | 2018.06.22 |
Flask(플라스크) - 파이썬 Flask 파일 업로드(file upload) 예제 및 소스파일 (7) | 2018.06.20 |
Flask(플라스크) - 파이썬 Flask RestFul API 서버 작성 예제 및 다운로드 (0) | 2018.01.21 |
Django(장고) - 로깅(Logging) 설정 및 로그(Log)파일로 저장 (0) | 2017.10.09 |