변수명
HTML
ex) default : 변수가 비어있는 경우, default 값을 사용 {{ value|default:"nothing" }} value 가 제공되지 않는다면 nothing을 반환 length : 값의 길이를 출력한다. {{ value|length }} value = ['a','b','c'] 라면 4를 반환
참고블로그
{% with n=111 %} {{n}} {% endwith %}위와 같이 사용 할 경우 with 구문 내에서 'n'이라는 변수를 사용 할 수 있다.
{% with name=info1.name %} 이름: {{ name }}<br> 이름: {{ name }}<br> 이름: {{ name }}<br> {% endwith %} 이름: {{ name }}<br>위에서는 views에서 작성한 class를 사용한 것이다.
class Info: def __init__(self, name, age): #생성자 self.name = name self.age = age def __str__(self): return "Info[%s, %d]" % (self.name, self.age)현재 views 에서 info1에는 Info('홍길동',20)으로 선언 후 context(딕션) 형식으로
이름: 홍길동 이름: 홍길동 이름: 홍길동 이름:마지막의 '이름: '의 경우 endwith이 선언된 이후에 작성되었기 때문에
{% with info1.name as name %} 이름: {{ name }}<br> 이름: {{ name }}<br> 이름: {{ name }}<br> {% endwith %} 이름: {{ name }}<br>위의 사용 방식 또한 info1.name의 값을 name(변수명)으로 선언한다.
1. {# 템플릿 싱글라인 주석 #} 2. {% comment '설명문자열' %} 템플릿 멀티 라인 주석 {% endcomment %}이처럼 두가지 방식으로 표현 할 수있다.
<!-- 주석 내용 -->으로 주석을 표현할 수 있다.
< : < > : > & : &이와 같이 표현 할 수 있다. 하지만 이 방법은 특수문자를 일일히 표현하는데 불편하다.
{% autoescape off %} {{ value }} {% endautoescape %}위 코드를 사용 시 화면 상에 간단히
{{ value }}를 표현 할 수 있다.
{# 모든 템플릿의 기본 베이스 in 'extemp/base.html' #} <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>{% block title %}title{% endblock %} </head> <body> <div>상단 메뉴 <a href="{% url 'extemp:index' %}">Home <hr> <h3>{% block headline %}headline{% endblock %} {% block content %}Empty is Content{% endblock %} <hr> <div>하단공통메뉴 </body> </html>위 html 파일을 작성, template에서 base.html 파일을 활용 하는 것으로
{% extends 'extemp/base.html' %} {% block title %}ex01{% endblock %} {% block headline %}예제1{% endblock %} {% block content %} n1:{{ n1 }}<br> lst:{{ lst }}<br> lst.0:{{ lst.0 }}<br> lst.1:{{ lst.1 }}<br> {{ lst.0 }}, {{ lst.1 }}<br> {{ tup.1 }}, {{ tup.2 }}<br> {{ dic.a }}, {{ dic.c }}<br> unknown : [{{ un }}]<br> {% endblock %}{% extends 'extemp/base.html' %}을 선언하여 base.html을 불러온다.
으악 ㅠㅠ 다시 정리해서 올렸는데 1시간 이 훌쩍 넘었네요. 일단 처음에 날린것보다는 디테일이 부족한데 한번 정리한걸 다시 작성하니깐 쫌 깔끔하게 쓸 수 었어요. 내일은 django 뿐만아니라 c언어도 정리 할 시간을 챙겨야겠네요.