Django ResponseNotFound & 404 페이지
클라이언트가 실제로 존재하지 않는 것을 방문할 수 있다는 사실을 고려해서 try except를 사용할 수 있다
지난 번 포스팅에는 ST,MF,DF가 있었는데 VF라는 포지션을 입력하면 어떻게 되는지 한 번 보자.
VF는 지정하지 않았기 때문에 KeyError가 뜬다. 딕셔너리의 그 Key 말이다.
위의 그림대로 말고 그런 포지션은 없다는 에러를 보여주자.
1. first_app/views.py에서 아래의 코드를 입력한다.
from django.shortcuts import render
from django.http.response import HttpResponse, Http404, HttpResponseNotFound
# Create your views here.
player ={
'ST':'Son',
'MF':'Lee',
'DF':'Kim'
}
def soccer(request, position):
try:
return HttpResponse(player[position])
except:
return HttpResponseNotFound("그런 포지션은 없어요.")
이렇게 에러를 보여줄 수도 있고 다른 방법이 또 있다. Http404 함수를 사용하는 것이다.
1. 아래의 코드를 입력한다.
from django.shortcuts import render
from django.http.response import HttpResponse, Http404, HttpResponseNotFound
# Create your views here.
player ={
'ST':'Son',
'MF':'Lee',
'DF':'Kim'
}
def soccer(request, position):
try:
return HttpResponse(player[position])
except:
raise Http404("그런 포지션은 없어요.")
일일이 에러문을 작성하는 건 비효율적이다. 404 Page로 단순하게 클라이언트에게 보여주자.
1. my_site/settings.py에서 DEBUG=False로 하고 호스트명을 입력해주고 서버를 다시 실행시킨다.(python manage.py runserver)
이렇게 하면 에러문을 다 작성할 필요가 없다. 물론 이런 404Page도 커스터마이징을 할 수 있는데 이후의 템플릿 편에서 정리할 예정이다.
'Web > Django' 카테고리의 다른 글
Django 템플릿(2) 변수 (0) | 2023.03.05 |
---|---|
Django 템플릿 (0) | 2023.03.05 |
Django 동적 뷰(라우팅) (0) | 2023.03.03 |
Django 뷰 (0) | 2023.03.03 |
Django 부트스트랩 사용하기 (0) | 2023.02.28 |