먼저 CRUD 의 의미를 다시 생각해보자.
C : Create , 데이터 생성
R : Read , 생성한 데이터를 페이지에 나타내어 우리가 읽는 것
U : Update , 데이터 수정
D : Delete , 데이터 삭제
이번 시간에는 Read 를 구현해보자.
한 마디로 정리하자면 우리가 생성한 데이터베이스를 우리가 볼 수 있게 html 페이지에 구현하는 것이다.
자 일단 우리가 생성한 두 가지 데이터베이스가 밑의 사진처럼 존재한다.
이를 어떻게 home.html 페이지에 띄울까?
데이터베이스를 home.html 페이지에 띄우는 '기능'을 구현하기 위해 views.py로 간다
views.py에서 blogs라는 이름으로 home.html에 던져줬으니 이를 구현해보자.
어떻게 나오는가? list 형태로 나온다. 안에 있는 항목들을 하나씩 꺼내줘서 나열해보자. 이를 하기 위해 for문을 쓴다.
for문에서 blogs라는 리스트에 속한 변수 blog에 대하여 하나씩 꺼내서 나열한다. 리스트의 항목이 끝날 때까지
아이 근데 너무 우리가 원하는 정보가 안나온다. 제목이나 구체적인 내용을 가져오자.
detail.html 페이지 생성
제목을 누르면 그 글의 자세한 내용을 볼 수 있는 detail 페이지를 만들어보자. 당연히 Templates 폴더에 detail.html 파일을 생성한다.
그 다음 views.py로 가서 함수를 만들자.
detail 함수의 id값은 어디서 오는가?
urls.py에서 views.py로 보낸다.
<str:id> 를 써서 id값에 따라 띄우는 페이지의 url을 달리 해준다.
그리고 이 url의 id값은 어떻게 정해질까?
home.html에서 요청하는 id값에 따라 달라진다.
이렇게 home.html에서 id값의 url을 요청한다.
오늘 흐름을 정리해보자
데이터베이스를 Read 하기 위해서는 어떻게 해야 할까?
일단 데이터베이스들은 models.py에서 담당하는 것들이다. 이거를 home.html로 가져오기 위해 views.py에서 함수를 짠다.
models.py에서 명명한 클래스명 Blog의 모든 objects를 가져온다는 함수를 짠다.
그리고 이것을 home.html에서 데이터베이스를 소환하기 위해 for문을 이용하여 리스트의 내용 하나씩 꺼낸다.
그리고 Detail.html을 짜야 하는데 ,detail 페이지는 각 게시글들의 세부 정보를 나타내는 페이지다.
그러면 각 항목에 대한 페이지의 정보가 뜨게 해야하는데 이를 일일히 만들어야 할까?
그게 아니고 id 와 pk 값을 이용한다. urls.py에서 id값에 대한 내용으로 views.py에 요청하고
id값을 가지고 와서 id값과 pk값이 일치하는 데이터를 detail.html 페이지에 던져줘서 띄운다.
'Web > django & python' 카테고리의 다른 글
Django - 클래스형 뷰 CBV (Class-Based View) (0) | 2021.07.09 |
---|---|
API 활용 (0) | 2021.05.25 |
Model 실습 (0) | 2021.05.18 |
Django 3 : BLOG 만들기 (MVT, ORM, CRUD 등등) (0) | 2021.05.11 |
Django 2 (0) | 2021.05.11 |