def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
뭐 어쨋든 웹 브라우저에 서버의 현재시간을 알려준다는 목적을 달성하기는 했지만, HTML 코드를 python 코드에 직접 넣는 것은 좋은 방법이다. 왜냐하면
디자인이 변경됐다는 이유로 python code를 수정하는 좋지 않다. HTML 코드는 운영중에라도 자주 변경을 하게 된다. HTML 코드를 python code로 부터 분리하면, 좀 더 쉽게 디자인을 수정할 수 있을거다. 하드코딩 돼 있다면, 디자이너도 python 코드를 봐야 할 거다.
python 코드와 HTML은 두 개의 전혀다른 전문적인 분야이다. 각각의 전문가가 자신의 전문영역만을 수정하고 책임질 수 있도록 이 둘을 구분하는게 필요하다. python 개발자가 HTML을 수정할 필요가 없고, HTML/CSS 개발자가 python코드를 수정하는 건 좋지 않다.
Python 코드와 HTML 코드가 분리되면, python code와 HTML/CSS/디자인 작업을 독립적으로 동시에 진행할 수 있다.
Python 코드와 HTML 코드를 분리하면, 코드도 깔끔해지고 유지보수하기도 좋아진다. Django의 템플릿 시스템을 이용하면 두 개의 코드를 분리할 수 있다.
템플릿 시스템 기초
Django 템플릿은 문서의 표현과 데이터를 분리하기 위해서 사용한다. 템플릿은 문서가 출력되는 방법과 데이터(변수)를 문서 중간에 삽입하기 위한 규칙들을 포함하고 있다. 일반적을 웹 페이지는 동일한 틀을 유지한 상태에서 몇 개의 값들을 변경하는게 일반적이다. 템플릿은 고정된 HTML 문서의 틀안에서 변경되는 부분을 지정함으로써, 동적인 페이지를 만들 수 있다.
다음은 간단한 템플릿 예제다. 이 템플릿은 고객에게 물건 구입 정보를 보여준다.
<html>
<head><title>물건 구입 내역</title></head>
<body>
<h1>물건 구입 내역</h1>
<p>안녕하세요 {{person_name}}님 </p>
<p>저희 회사({{company}})로 부터 물건을 구입해주셔서 감사합니다. 주문하신 물건은 {{date}}에 도착할 예정입니다.<p>
<p>물건 구입내역은 다음과 같습니다.</p>
<ul>
{% for item in item_list%}
<li>{{item}}</li>
{% end %}
</ul>
<p>감사합니다.</p>
</body>
</html>
Template
템플릿 시스템 기초
Recent Posts
Archive Posts
Tags