[django]404
서두 🤡
404페이지를 만드는 이유는 통상
- 브라우저가
404 status code
를 이해하기 때문 - 방문기록창에 저장하지 않음
- 로컬에 기록이 남지 않음
코드는 지난번에 이어서 진행하도록 할게요.
https://velog.io/@hyeseong-dev/django-FBV-about-product-detail-page
아래 코드는 디비에서 찾지 못하면 메인페이지로 리다이렉트해준거!
from django.urls import reverse
from django.shortcuts import render, redirect
from rooms import models
def room_detail(request, pk):
try:
room = models.Room.objects.get(pk=pk)
return render(request, 'rooms/room_detail.html', context={'room':room})
except models.Room.DoesNotExist:
return redirect(reverse('core:home'))
스텝1, Http404 임포트🤧
디비에서 찾지 못했다고 별도의 404페이지(장고에서 만들어준)를 호출함
특이한건 return
키워드 대신 raise
키워드를 사용하네요.
그래서 에러를 발생시킨다는 직관적 의미에 더 충실한것 같아요.
- Http404 임포트해줄게요.
from django.http import Http404
from django.shortcuts import render
from rooms import models
def room_detail(request, pk):
try:
room = models.Room.objects.get(pk=pk)
return render(request, 'rooms/room_detail.html', context={'room':room})
except models.Room.DoesNotExist:
raise Http404()
스텝2, 404.html 생성 🤧
templates/404.html를 만들게요.
DEBUG = False로 수정 🤧
config/settings.py
프런트 화면
console screen
참고로 이번 페이지에서 settings.py에 설정한거 다 빽시켜주세요.(만약 다른것도 따라하신다면 말이조~)
Author And Source
이 문제에 관하여([django]404), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyeseong-dev/django404저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)