본문 바로가기

Django/따라하는 장고

40. DEBUG(디버그)

장고 환경셜정 파일에는 DEBUG 라는 항목이 있다. 이 항목은 기본값이 True 이지만 장고 공식 문서에는 '운영 환경에서 DEBUG는 반드시 False로 해야한다' 라고 되어있다.

장고는 실행 도중 오류가 발생하면 디버그가 True 인 경우 오류내용을 상세하기 출력한다. 이 때 settings.py 나 urls.py 같은 파일에 설정한 항목들도 노출된다. 정보 노출이나 해킹 등의 위험 때문에 False 로 해야한다.

projects\mysite\config\settings\prod.py 를 수정하자.

그리고 깃을 커밋해 서버에 적용하자. 하는 방법은 전 게시물을 확인하자.

그 후 http://고정ip/asdf 같이 존재하지 않는 페이지로 접속해 보자.

이전에는 오류의 원인같은 다양한 메시지가 적힌 페이지가 출력되었는데 이제는 아무런 정보도 표시되지 않는다.

 

정보를 표시하지 않기는 하지만 페이지가 단조롭기 때문에 꾸며보자. 꾸미기 위해 먼저 

projects\mysite\config\urls.py 를 수정하자.

handler404 변수를 설정하면 404 오류 발생 시 사용자가 정의한 뷰 함수가 호출된다. 우리는 적어 넣은대로 common/views.py 파일의 page_not_found 함수가 호출될것이다. 이 handler404 변수는 반드시 config\urls.py 에 등록해야한다. common\urls.py 같은 곳에 등록하면 작동하지 않는다. 호출할 함수를 설정했으므로 이제 그 함수를 정의해보자.

projects\mysite\common\views.py 를 수정해주자.

함수가 받는 매개변수중 exception 매개변수는 오류의 내용을 담고있다. 오류의 내용을 화면에 보여주려면 exception 값을 읽어 화면에 출력할 수도있다. 함수에 common/404.html 을 리턴한다고 했으므로 그 파일을 만들어주자.

projects\mysite\templates\common\404.html 을 새로 만들고 다음과 같이 작성해주자.

그리고 깃을 이용해 서버에 적용하자. 서버에 적용한 후 구니콘을 restart 해주자. 이제 파이보를 확인해보자.

이제 좀더 깔끔하게 나온다.

'Django > 따라하는 장고' 카테고리의 다른 글

42. 마무리  (0) 2022.12.14
41. logging(로깅)  (0) 2022.12.14
39. 서버관리자  (0) 2022.12.12
38. Nginx(엔진엑스)  (0) 2022.12.12
37. Gunicorn(구니콘)  (0) 2022.12.09