Django Template : 장고에서 데이터를 표현하는 도구, 표현에 관련된 로직
Django Template System : 데이터 표현을 제어하는 도구이자 표현에 관련된 로직을 담당
Django Template Language(DTL) : Django template에서 사용하는 built-in template system
조건, 반복, 변수 치환, 필터 등의 기능을 제공한다. ( 단, python 코드로 실행되는 것은 아님 )
프로그래밍적 로밍이 아니라, 프레젠테이션을 표현하기 위한 것
1. Variable ( 변수 )
변수명은 영어, 숫자, _ 구성 가능
밑줄로 시작 X 공백 X 구두점 X
.을 사용하여 변수 속성에 접근이 가능하다.
render()의 3번째 인자로 딕셔너리 형태로 넘겨준다.
딕셔너리에서 key에 해당하는 문자열이 template에서 사용 가능한 변수명이 됨 !
2. Filters
표시할 변수를 수정할 때 사용
chained가 가능, 일부 필터는 인자를 받기도 함
3. Tags
출력 텍스트를 만들거나, 반복문, 논리를 수행
일부 태그는 시작과 종료 태그 필요
예시 )
4. Comments : 주석
여러줄 주석은 {% comment %} {% endcomment %} 사용
실습하기
1. project와 app(myapp)을 생성 후, project / urls.py에 path 추가
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', views.index),
path('diner/', views.diner),
]
2. myapp / templates / myapp 에 diner.html 추가
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>{{ pick }}은 {{ pick|length }} 글자</p>
<p>{{ foods|join:","}}</p>
<p>메뉴판</p>
<ul>
{% for food in foods %}
<li>{{ food }}</li>
{% endfor %}
</ul>
<a href="/home/">뒤로</a>
</body>
</html>
3. app / views.py에 diner 함수 추가
from django.shortcuts import render
import random
# Create your views here.
def index(request):
return render(request, 'myapp/index.html')
def diner(request):
foods = ['햄버거','마두밥','곰탕']
pick = random.choice(foods)
context = {
'pick':pick,
'foods':foods,
}
return render(request, 'myapp/diner.html', context)
4. 실행결과
random 함수를 사용해서 새로고침 할 때 마다 pick이 바뀌는 것을 확인할 수 있음
뒤로 <- 글씨를 누르면 /home/ 기본 화면으로 이동하게 연결해놨다.
index.html은 이렇게 구성해놨음
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Hi!</h1>
</body>
</html>
항상 만들기 순서 1. urls.py에 path추가 2. templates 파일 만들기 3. views에서 templates 파일 불러올 함수 만들기
파일 순서 항상 조심하기 . . !!
'django' 카테고리의 다른 글
[Django] App URL mapping (0) | 2023.03.25 |
---|---|
[Django] 하나의 html을 여러 App에서 돌려쓰기 (0) | 2023.03.15 |
[Django] 시작하기 / 가상환경 / project / App 생성하기 (0) | 2023.03.14 |
[22.09.26] 2일차 ( templates / render ) (0) | 2022.09.26 |
[22.09.23] 가상환경 / 프로젝트 / app 만들기 (0) | 2022.09.23 |