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 수정
* 확인
'Programming' 카테고리의 다른 글
Octopress 설치하기 (0) | 2017.03.02 |
---|---|
[문자열]-1 (정리필요) (0) | 2017.02.20 |
[Django] 문제 - View 함수 추가 및 App 생성하여 간단한 html 코드 작성 (0) | 2015.07.08 |
[Django] Django 설치 및 시작 (0) | 2015.06.29 |
SyntaxError: Non-UTF-8 code starting with '\xb9' (vi로 작성시 encoding 문제) (0) | 2015.06.04 |