Skip to content
- 템플릿 변수 : {{ 변수 }}
- 정의되지 않은 변수는 빈(”) 문자열로 채워진 것으로 판단.
- 템플릿 필터 : 파이프(|)를 사용하여 변수에 필터 적용
- {{ name|lower }} : name 변수의 값을 소문자로
- {{ text|escape|linebreaks }} : text 값을 특수문자를 escape하고 <p> 태그 붙여줌
- {{ bio|truncatewords:30 }} : bio 값을 줄바꿈 없애고 앞 30 단어만 보여줌
- {{ lst|join:” // “ }} : lst의 항목들을 ” // “를 주어 묶어줌
- {{ value|default:”nothing” }} : value 값이 False이거나 없는 경우 “nothing”으로 보임
- {{ value|length }} : value의 값 대신 길이 출력
- {{ value|striptags }} : value의 값에서 HTML 태그 제거
- {{ value|pluralize }} : value의 값이 1이 아니면 복수 접미사 s를 붙여줌
- {{ value|pluralize:”es” }}, {{ value|pluralize:”ies” }} : 복수접미사 es, ies사용시
- {{ value|add:”2″ }} : value의 값에 2를 더해서 보여줌
- {{ first|add:second }} 일 경우
- first = ‘python’, second=’django’ => pythondjango
- first = [1,2,3], second=[4,5,6] => [1,2,3,4,5,6]
- first = “5”, second=”10″ => 15
- 템플릿 태그 : {% tag %}
- 반복문 : {% for %} ~ {% endfor %}
- 조건문 : {% if %} ~ {% elif %} ~ {% else %} ~ {% endif %}
- {% csrf_token %}
- 내부적으로 CSRF 토큰값을 검증
- CSRF 토큰값이 유출 될 수 있으니 외부 URL <form>엔 사용 금지
- CSRF(Cross-Site Request Forgery) 공격
- 사이트간 요청 위조 공격
- 이미 인증받은 사용자를 이용하여 공격시도
- {% url %}
- {% with %}
- {% load %}
- 템플릿 주석
- 1줄 주석 : {# 주석 #}
- 여러줄 주석 : {% comment %} ~ {% endcomment %}
- HTML 이스케이프 : 장고는 자동으로 이스케이프 기능이 적용됨
- XSS(Cross-Site Scripting) 공격
- 일반인도 사용할 수 잇는 공격
- HTML 태그를 이용하여 공격
- 해결 : 예약어들에 대해 이스케이프 기능 사용(예: > -> >)
- 이스케이프 비활성화
- 1줄 : {{ 변수|safe }}
- 여러줄 : {% autoescape off %} ~ {% endautoescape %}
- 템플릿 상속
error: Content is protected !!