views.py

from django.http import Http404
from django.shortcuts import render
from django.http import HttpResponse
from .models import Album


def index(request):
all_albums = Album.objects.all()
ctx = {
'all_albums': all_albums
}
return render(request, 'music/index.html', ctx)


def detail(request, album_id):
try: # 에외 처리
album = Album.objects.get(id=album_id)
except Album.DoesNotExist:
raise Http404("Album does nor exist")
return render(request, 'music/detail.html', {'album': album}) # ctx 대신 이렇게 쓸 수 도 있다

- django 의 http 안에 Http404 를 import 해준다. 그러면 찾고자하는 요소가 없을때 404 페이지를 띄울 수 있다.


- album = Album.objects.get(id=album_id)  -> url 에서 album_id 를 get 해서 id (pk) 값으로 넘겨줌. 그런데 id (pk)가 없으면 http404 에러를 일으키고 아니면 detail 을 render 해서 보여준다. 


- tyr~except 예외처리


- return render 에서 ctx 대신 직접 사용할 변수를 넣어준것. 

'Etc' 카테고리의 다른 글

Django Foreign Key 활용 <18>  (0) 2018.08.12
Django Foreign Key 에 Data 저장하기  (0) 2018.08.12
Django template 활용법 <14>  (0) 2018.08.12
백준 4344 임시  (0) 2018.07.10
백준 파이썬 1546  (0) 2018.07.10

+ Recent posts