티스토리 뷰
Django - 5. Category view 와 Templates 만들기
Django 에서 view는 데이터와 화면을 구성하는 HTML을 연결해주는 컨트롤러이다. 이번 포스팅에서는 Category에 대한 뷰와 관련 데이터를 화면에 보여주는 HTML을 만들어보겠다.
먼저 시작하기 전에 shop 폴더 아래에 "templates > shop" 폴더를 만들어준다.
이제 다시 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' 는 아직 정의되지 않았다.
기본적인 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 에 카테고리 경로까지 작성하면, 해당 카테고리에 있는 제품만 아래 표시된다.
해당 카테고리에 대한 정보와 제부 제품에 정보까지 함께 보여준다.
마지막으로 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 한다. 각각의 카테고리가 표시된다.
끝.
'Django(장고)' 카테고리의 다른 글
Django - 7. 장고에서 부트스트랩 4 사용하기 (0) | 2019.12.09 |
---|---|
Django - 6. Product view 와 Templates 만들기 (0) | 2019.11.27 |
Django - 4. Shell 사용하기 (0) | 2019.11.26 |
Django - 3. Models 과 admin 만들기 (0) | 2019.11.25 |
Django - 2. 첫번째 앱(shop) 설치하기 (0) | 2019.11.24 |
- Total
- Today
- Yesterday
- 프로젝트 생성
- Python
- amaztools
- 미밴드4
- slack api
- venv
- HOME key
- python message
- cmd실행
- 미밴드
- HOME/END
- 장고
- du 명령어
- 메시지 전송
- df 명령어
- win10
- 팀 소통
- django
- 파이썬
- angular
- channel oauth
- Karabiner-Elements
- http 요청
- python slack
- win7
- cmd창
- webhook
- END key
- vscode
- 디스크 사용량
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |