Python flask를 사용한 앱을 만들 경우 페이지가 없는 404 에러 발생시 커스텀 에러 404 페이지를 만들어 보여주는 방법을 알아봅니다.



# Python flask 404 페이지
404는 페이지가 없다는 것을 의미합니다. 웹서버의 경우 페이지가 없을 때 기본으로 보여주는 에러 메시지가 있지만 만약 웹사이트 고유의 커스텀한 404 페이지를 보여주고 싶다면? 이런 404 페이지들은 많은 사이트에서 사용합니다. 만약 flask를 사용하는 앱에서의 방법을 알아봅니다.


! 404 에러 발생시 특정 페이지를 보여주기
flask는 매우 간단한 라우팅 설정을 가지고 있죠. 만약 404 에러가  발생하는 경우 이를 특정 페이지를 만들거나 원하는 메시지를 출력하도록 하는 것이 가능합니다. 보통 커스텀 에러 페이지를 생성하여 보여주게 됩니다. 아래 코드를 봐주세요.
from flask import render_template

@application.errorhandler(404)
def not_found_error(error):
  return render_template('page404.html')

이제 방문자가 웹사이트에 없는 페이지에 접근하면 커스텀된 404 페이지로 이동하는 간략한 코드가 완성되었습니다. 404에러가 발생할 경우 not_found_error()를 호출하고 render_template()에서 새롭게 만든 page404.html로 이동하게 됩니다.

여기까지 flask에서 404 페이지로 이동하는 방법을 알아봤습니다.


! 그 외 커스텀 에러 페이지 보여주는 방법
404가 아니더라도 401, 403 등의 기타 에러시 다른 커스텀 에러를 보여주는 것도 가능합니다. 위의 @application.errorhandler(404)값을 변경하면 됩니다. 아래처럼 말이죠.
@application.errorhandler(401)
def error_401(error):
  return render_template('page401.html')

@application.errorhandler(403)
def error_401(error):
  return render_template('page403.html')

이와 같이 다른 에러 핸들링이 가능하다는 점을 참고하시기 바랍니다.