일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- vscode
- Django란
- 자료구조
- 엑셀
- iOS14
- 입/출력
- correlation coefficient
- 장고란
- 2557
- 표준 입출력
- 알고리즘 공부방법
- 매크로
- 프레임워크와 라이브러리의 차이
- scanf
- 백준
- 시간복잡도
- 연결요소
- 이분그래프
- k-eta
- 구조체와 클래스의 공통점 및 차이점
- getline
- Django Nodejs 차이점
- UI한글변경
- string 메소드
- 입출력 패턴
- string 함수
- c++
- EOF
- Django의 편의성
- double ended queue
Archives
- Today
- Total
Storage Gonie
28. (app2) Django 404핸들링 본문
반응형
1. views.py에서 detail 메소드에 추가해봄
<기존>
def detail(request, question_id):
return HttpResponse("You're looking at question %s." % question_id)
<수정후>
def detail(request, question_id): # question_id은 url로 전달받은 값
try:
q = Question.objects.get(pk = question_id)
except Question.DoesNotExist:
raise Http404("Question %s does not exist" % question_id) #존재하지 않을 경우 404페이지를 띄움
return render(request, 'polls/detail.html', {'question' : q})
2. templates/polls 폴더에 detail.html추가
{{ question }}
3. localhost/polls/10 에 인위적으로 접속해보면 아래와 같은 404 페이지를 보여줌
4. short cut(자주 사용되어 간소화 되어있는 모듈) 중에서 get_object_or_404를 사용하여 좀더 간단하게 404 처리하는 방법
- try, except를 지우고 아래의 것을 사용하는 것임.
- get_object_or_404 => get 사용시 존재하는 객체가 없을 때 처리가능.
- get_list_or_404 => filter 사용시 존재하는 객체가 없을 때 처리가능.
- 각각에 대한 사용법은 문서를 참고하길 추천함.
- localhost/polls/10 에 인위적으로 접속해보면 아래와 같은 404 페이지를 보여줌
from django.shortcuts import get_object_or_404
def detail(request, question_id): # question_id은 url로 전달받은 값
q = get_object_or_404(Question, pk = question_id) #존재하지 않을 경우 404페이지를 띄움
return render(request, 'polls/detail.html', {'question' : q})
반응형
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
30. (app2) 커스텀 From 직접 만들기(detail.html수정) (0) | 2019.02.19 |
---|---|
29. (app2) 하드코딩 URL 제거(index.html 수정, polls.urls.py 수정) (0) | 2019.02.19 |
27. (app2) template 연동 1 (0) | 2019.02.17 |
26. (app2) views.py 및 urls.py 수정2(url에서 입력받은 수를 views에 전달) (0) | 2019.02.17 |
25. (app2) Django admin 페이지 사용하기(모델이 admin 페이지에서 어떻게 보여지는지) (0) | 2019.02.17 |
Comments