티스토리 뷰

반응형

Django - 5. Category view 와 Templates 만들기

 

Django 에서 view는 데이터와 화면을 구성하는 HTML을 연결해주는 컨트롤러이다. 이번 포스팅에서는 Category에 대한 뷰와 관련 데이터를 화면에 보여주는 HTML을 만들어보겠다. 

 

먼저 시작하기 전에 shop 폴더 아래에 "templates > shop" 폴더를 만들어준다. 

shop > templates

이제 다시 settings.py로 가서 templates 관련 폴더를 추가해준다. 

다음은 shop > templates > shop 으로 가서 html 파일들(base.html, header.html, footer.html, ... ) 을 만든다. Django templates 에서 데이터 작업을 위한 코드는 다음과 같다. 

base.html 은 templates 에 대한 전체 틀을 잡아주는 역할을 한다. 

다음은 base.html 안에 들어갈 header.html 이다. 

static > img > 아래에 필요한 파일을 복사해두면된다. 

다음은 nav.html 이다. 

 

코드에서 사용한 'shop:allProdCat' 는 아직 정의되지 않았다. 

footer.html

기본적인 templates 파일들이 생성되었다. 이제 category view 에 대해서 작성해본다. 

shop > view.py

get_object_or_404 는 Category 에 있는 정보를 가져오고, 만일 데이터를 가져오지 못하면 HTTP404 에러를 발생시키는 함수이다. 

 

shop > urls.py 를 만들어서 shop 에 관련된 urlpatterns을 지정한다. 

main urls 에 조금전에 생성한 shop urls 을 추가해준다. 

지금까지 category 에 대한 view 와 urls 를 만들었다. 다음으로 category templates 을 작성한다. category templates 파일의 위치는 shop > templates > shop > category.html 이다. 

 

참고로 Django templates 에서 variables tags는 다음과 같이 사용한다. 

category.html

계속 - content block

서버를 재구동해서  category view & templates 가 제대로 동작하는지 확인한다. 

만일 브라우저  url 에 카테고리 경로까지 작성하면, 해당 카테고리에 있는 제품만 아래 표시된다. 

cotton-cushion
polyester cushions

해당 카테고리에 대한 정보와 제부 제품에 정보까지 함께 보여준다. 

마지막으로 context_processors.py 에 대한 설명이다.  Django 사이트내에서 사용되는 함수를 정의할수 있다. 

새로 생성한 함수를 settings.py 의 context_processors 에 등록하면, Django 의 글로벌 함수처럼 프로젝트내에 어디서든 이 함수를 사용할수 있게 된다. 

<전역변수> 

settings.py의 context_processors 로 등록되었기 때문에 Django 사이트 내에서 어디서든 이용할수 있다. 이를 활용해서 navbar.html 을 업데이트해보자. 

{{cat.get_url}} 을 정의하기 위해서 shop > models.py 에 get_url 함수를 추가한다. 

이제 서버를 재구동하고 브라우저를 refresh 한다. 각각의 카테고리가 표시된다. 

 

끝. 

 

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함