kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Programming

[Django] Templet 활용하기

까마기 2015. 7. 8. 19:56
728x90
반응형

1. 장고 템플릿

1) 동작 방식

- django.shortcuts.render 는 템플릿 파일을 사용하여 HttpResponse를 생성

- 템플릿 파일 = HTML + 템플릿 문법

- 템플릿 파일은 기존의 HTML에 템플릿 문법을 추가하여 조건에 따라 (if-else) 또는 반복적으로(for-loop) HTML을 생성 가능

- 템플릿 문법을 사용해야 하기 때문에, 일반적인 함수들은 사용 불가.

Clinet --Request --> URL Dispatcher (urls.py) -> 

Views(비지니스로직, views.py) <--> Model(저장할 자료) <---> Database

--> Template (웹 페이지 템플릿) --Response--> Client


2. 템플릿 예제


cd workspace/survey/polls

mkdir templates

cd templates

vi index.html

만들고 나서 -> sublime Text 2로 작성

1) 예제 1

index.html

views.py 아랫부분에 새로 index 함수로 정의해준다.

빨간박스 부분.

위와 같이 정의 했을 때 상단 부분에 index가 정의되어 있어서 제대로 실행이 안될 것으로 생각하였는데,

views.py 마지막 부분에 재 정의를 해주니깐 아랫부분에 있는 index로 실행되어 index.html 을 불러 오는 것을 확인하였다. -> 아직 개념이 명확하게 잡혀있지 않아 조금 더 공부를 해야 하는 부분이다.


확인.


2) 예제 - 2

* index.html 수정




- {% template_expression %}는 템플릿 렌더링 과정에서 실행

-> views.py에 index 함수부분에 "data"라는 이름으로 리스트 선언해 준 데이터를 for 문의 x 변수로

선언하여 반복하겠다는 의미이고, 출력은 " Poll x : go " 형식으로 출력한다.

또, "go"는 anchor 태그로, 다른 페이지로의 링크하는 형식으로 작성.


- render 함수에 전달된 딕셔너리 context에 담긴 자료를 key로 접근 가능

- {{ variable_name }} 은 변수 값을 출력


* views.py 수정




3) 예제 - 3

-> if / else 문 사용하기

* index.html 수정




* views.py 수정



* 확인



반응형