장고 Http404

4283 단어 장고

이 기사의 내용



장고에서 자주 보기 Http404를 사용한 예외 오류 처리에 대해 설명합니다.

views.py(자주 보는 오류 처리)
from django.http import Http404
from django.shortcuts import render
from polls.models import Poll

def detail(request, poll_id):
    try:
        p = Poll.objects.get(pk=poll_id)
    except Poll.DoesNotExist:
        raise Http404("Poll does not exist")
    return render(request, 'polls/detail.html', {'poll': p})

Http404는 무엇이 잘 생겼는지



원래 raise는 강제로 예외 처리를 내리는 파이썬 메소드입니다.
raise Http404를 사용하면 페이지가 실제로 존재하는지 여부에 관계없이 원하는 경우 404 오류를 출력 할 수 있습니다.
예를 들어 아래와 같은 코드일 때는 value가 2일 때 404 에러를 내고, 그 이외의 경우에는 적절한 라우팅을 할 수 있습니다.

views.py
def example(request,value):
    if value == 2;
        raise Http404
    return HttpResponseRedirect(reverse('example'))

실제로는 이런 사용법은 하지 않는다고 생각합니다만,

views.py
def example(request,value):
    if request.method == "POST";
        raise Http404
    return HttpResponseRedirect(reverse('example'))

그렇다면 POST시에만 404 오류를 발생시킬 수 있습니다.

Http404로 오류 페이지 사용자 정의



Http404를 사용하여 오류 페이지를 사용자 정의할 수도 있습니다.
자신이 좋아하는 html 파일을 만들고 templates 폴더 바로 아래에 "404.html"을 놓습니다.
그리고 반드시 settings.py에서 DEBUG = False로 설정하십시오.
(기본적으로 True입니다)

settings.py
DEBUG = False

사용자 정의하지 않은 경우 다음과 같이 기본 404 오류 페이지를 반환합니다.


또한 DEBUG=True인 경우 일반 404debug 페이지가 표시됩니다.

참고 사이트



장고 문서
htps : // / cs. d 쟈고 p 로지 ct. 코 m/엔/3.1/토피 cs/h tp/ゔぃえ ws/

좋은 웹페이지 즐겨찾기