BackEnd/Django

[Django] Templates System

JJoajjoa 2023. 9. 20. 12:48

 

 

 

템플릿 시스템

 

 

웹 어플리케이션에서 동적으로 HTML을 생성하기 위한 도구

장고의 MTV 아키텍처에서 뷰와 모델 사이에 데이터 전달과 HTML 랜더링을 담당함

 

 

 

템플릿 파일 

.html 확장자를 가진 텍스트 파일

템플릿 파일을 프론트엔드 디자인과 백엔드 데이터를 결합하여 최종 HTML 문서를 생성하는데 사용됨

 

 

 

변수

중괄호 두개 안에 {{변수}}를 넣어 해당 변수 값을 출력

 

 

 

필터

중괄호 안에 파이프(|) 로 연결하여 변수나 함수의 결과값을 변환하거나 조작함

{{name|lower}} >> name을 소문자로 필터링

 

 

 

태그 {%  %}

 

{% for %}

반복문 처리

{% if %}

조건문 처리

{% url %}

url 생성

{% csrf_token %}

장고에서 POST 요청할 때, CSRF 공격을 방지하기 위해 사용

>> Cross-Site Request Forgery 

{% with %}

임시변수를 정의하여 템플릿 내부에서 재사용할 수 있음

{% load %}  // {% load static %}

특정 템플릿 라이브러리나 필터를 로드하는데 사용됨

(CSS, JS 및 이미지와 같은 정적 파일들은 장고 내부에서 설정되어야 함)

>> import 느낌

이미지 파일 링크를 걸어줌

{% block %}

상속용 블록 정의

{% pluralize %}

앞에 있는 choice.votes가 1보다 크면 s를 출력해줌

 

 

 

상속

공유되는 레이아웃과 코드 조각들을 재사용할 수 있음

 

{% extends %} : 부모템플릿 지정

{% block %} : 자식 템플릿에서 오버라이드 가능한 블록정의

 

 

 

컨텍스트

컨트롤러(View)가 전달하는 데이터

딕셔너리 형태로 전달됨

 

 

주석 {#  #}

중괄호 안에 샵샵