INSPECT
Python Django-4 (QuerySet &Get Item or 404 Query) 본문
Python Django-4 (QuerySet &Get Item or 404 Query)
---QuerySet---
터미널에서 python manage.py shell을 치면 쉘로 들어오는데 이것은 우리 장고프로젝트와 연관되어 사용할 수 있다.
모델을 임포트해주면 모델을 이용해 조회하거나 생성하는 것이 가능해진다.
반복문으로 쿼리셋에 저장해 원하는 정보를 출력해줄 수 있다.
PK는 ID와 의미가 비슷하다. Primary Key의 줄임말이다.
모델 Post를 임포트 해준 뒤 list에 queryset으로 모든 포스트 항목들을 집어넣고 object_list라는 변수에 넣었다.
view에 object_list 변수를 입력해준다.
뷰를 이런식으로 바꿔서 반복문으로 돌리면
이렇게 멋있게 나온다. 멋있다...
---Get Item or 404 Query---
이런식으로 get을 이용해 내용을 가져올때는 id값이 존재하지 않아 오류가 날 때 페이지는
오류가 난 원인을 보여주게 된다. 이러한 페이지는 보안에 취약하다. 따라서 우리는 Get Item or 404 Query를 사용하여 오류가 나면 404오류페이지로 이동되게 할 것이다.
get_object_or_404를 import해주고 이를 이용해 인스턴스를 가져온다.
새로 post_detail.html 파일을 만들어
이처럼 작성해준다. 그럼 details페이지에서는 인스턴스의 title, content, timestamp, updated, id가 나오게 될 것이다.
만약 찾는 값이 없다면(id=3인 게시물) 에러 페이지는 위처럼 에러 내용을 보이지 않는 404페이지로 나오게 된다. 보안에 조금 신경 썼다고 할 수 있다.
id값 말고도 title=“Title abc”와 같이 다른 값으로 지정할 수도 있다.
'Python' 카테고리의 다른 글
[Python] 오류 자세히 찍기 (0) | 2017.01.27 |
---|---|
Python Django-5 (Dynamic Url Routing & Patterns / URL Links & Get Absolute URL) (0) | 2017.01.03 |
Python Django-3 (Template) (0) | 2017.01.02 |
Python Django-2 (0) | 2017.01.02 |
Python Django-1 (0) | 2017.01.02 |