Django : Templates

김재훈·2024년 3월 13일

Django

목록 보기
2/15

Django Template system

  • 데이터 표현을 제어하면서, 표현과 관련된 부분을 담당

Django Template Language (DTL)

  • Template에서 조건, 반복, 변수 등의 프로그래밍적 기능을 제공하는 시스템

DTL Syntax

  1. Variable
    • render 함수의 세 번째 인자로 딕셔너리 데이터를 사용(context)
    • 딕셔너리 key에 해당하는 문자열이 template에서 사용 가능한 변수명이 됨
    • dot('.')을 사용하여 속성에 접근할 수 있음
      {{ variable }}
      {{ variable.attribute }}
  2. Filters
  3. Tags
    • 반복 또는 논리를 수행하여 제어 흐름을 만듦
    • 일부 태그는 시작과 종료 태그가 필요
    • 약 24개의 built-in template tags를 제공
      {% tag %}
      {% if %} {% endif %}
  4. Comments
    • DTL에서의 주석
      {% comment %} ... {% endcomment %}

Template inheritance (템플릿 상속)

  • 페이지의 공통요소를 포함하고, 하위 템플릿이 재정의 할 수 있는 공간을 정의하는 기본 'skeleton' 템플릿을 작성하여 상속 구조를 구축
  1. skeleton 역할을 하게 되는 상위 템플릿 작성
  2. 상위 템플릿에 'block' 태그 작성
    • 하위 템플릿에서 재정의 할 수 있는 블록을 정의
      `{% block name %}{% endblock name %}
  3. 하위 템플릿에 'extends' 태그 작성
    • 자식(하위) 템플릿이 부모 템플릿을 확장한다는 것을 알림
    • 반드시 자식 템플릿 최상단에 작성되어야 함 (2개 이상 사용 불가)
      {% extends 'path'%}
  4. 하위 템플릿의 'block' 태그 안에 내용 작성
    • (상위 템플릿에 작성하며 하위 템플릿이 작성할 수 있는 공간을 지정하는 것
      {% block name %} 내용 {% endblock name %}

HTML form(요청과 응답)

데이터를 보내고 가져오기

  • Sending and Retrieving form data
  • HTML 'form' element를 통해 사용자와 애플리케이션 간의 상호작용 이해하기
  • HTML 'form'은 HTTP 요청을 서버에 보내는 가장 편리한 방법
  • 사용자 입력을 서버로 보내는 건 대부분 'form' 태그로 사용

'form' element

  • 사용자로부터 할당된 데이터를 서버로 전송
  • 웹에서 사용자 정보를 입력하는 여러 방식
    (text, password, checkbox 등)을 제공

'action' & 'method'

  • form의 핵심 속성 2가지

  • 데이터를 어디(action)로 어떤 방식(method)으로 요청할지

  • action

    • 입력 데이터가 전송될 URL을 지정 (목적지)
    • 만약 이 속성을 지정하지 않으면 데이터는 현재 form이 있는 페이지의 URL로 보내짐
  • method

    • 데이터를 어떤 방식으로 보낼 것인지 정의
    • 데이터의 HTTP request methods (GET, POST)를 지정

'input' element

  • 사용자의 데이터를 입력받을 수 있는 요소
    (type 속성 값에 따라 다양한 유형의 입력 데이터를 받음)

'name' attribute

  • input의 핵심 속성
  • 입력한 데이터에 붙이는 이름(key)
  • 데이터를 제출했을 때 서버는 name 속성에 설정된 값을 통해서만 사용자가 입력한 데이터에 접근할 수 있음

Query String Parameters

  • 사용자의 입력 데이터를 URL 주소에 파라미터를 통해 서버로 보내는 방법
  • 문자열은 앤퍼샌트('&')로 연결된 key=value 쌍으로 구성되며, 기본 URL과는 물음표('?')로 구분됨
  • 예시

Throw 페이지

  • 사용자 입력을 받아 그대로 출력하는 서버 만들기


HTTP request 객체

  • form으로 전송한 데이터 뿐만 아니라 모든 요청 관련 데이터가 담겨 있음
    (view 함수의 첫 밴째 인자)


  • form 데이터를 가져오는 방법

0개의 댓글