장고 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/
Reference
이 문제에 관하여(장고 Http404), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taole33/items/0a5f65e0bb1f833f2787텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)