Templates
Template ์ธ์ด๋ ๊ฐ framework ๋ง๋ค ๋ค๋ฅด๋ค
Django์ template ์ธ์ด๋
DTL
!
DTL (Django Template Language)
Ground Rule
: ์ฐ์ฐ์ DTL์ด ์๋ views.py
์ context
๋ก ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ DTL์ ๋จ์ํ ์ถ๋ ฅํ๋ ์ญํ ๋ง ํ๊ฒ ํ๊ธฐ
๊ธฐ๋ณธ ๋ฌธ๋ฒ
1. ์ถ๋ ฅ {{ }}
{{ }}
2. ๋ฌธ๋ฒ {% %}
{% %}
3. ์ฃผ์ ``
๋ฐ๋ณต๋ถ
Loops over each item in an array
{{ forloop.counter }}
{{ forloop.counter0 }}
`
`
: ๋ฐฐ์ด์ด ๋น์ด์์ผ๋ฉด ์ถ๋ ฅํ ๋ด์ฉ ์จ์ค ๋ ์ฌ์ฉ
Loop over each item in a dictionary
Variable
Description
forloop.counter
The current iteration of the loop (1-indexed)
forloop.counter0
The current iteration of the loop (0-indexed)
forloop.revcounter
The number of iterations from the end of the loop (1-indexed)
forloop.revcounter0
The number of iterations from the end of the loop (0-indexed)
forloop.first
True if this is the first time through the loop
forloop.last
True if this is the last time through the loop
forloop.parentloop
For nested loops, this is the loop surrounding the current one
์กฐ๊ฑด๋ฌธ
built-in tag, filter (|
)
|
)๊ณต์๋ฌธ์ ์ฐธ๊ณ ํ์
: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/
length
๊ธธ์ด ํ์ธํ๊ธฐ
truncatechars:num
10์๋ง ์งค๋ผ์ ๋ณด์ด๊ธฐ
dictsort
dictionary ์๋ฃํ์ผ๋, ๋ช ์ํ key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
Template ํ์ฅ
pages/templates/base.html
posts.html
Template ์ค์ - DIR
DIR
BASE_DIR
Linux
,Windows
๋ฑ OS์ ์๊ด์์ด ์ค์ ํ๋ ค๊ณos.path.dirname()
์ผ๋ก ํจ
DIRS ๋ฆฌ์คํธ์ ๊ฒฝ๋ก ์ ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ํตํด ํ์ธํ๊ธฐ
Multiple Apps
<br
์์ผ๋ก๋ ํญ์ app์ ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
1. url ์ค์ ๋ถ๋ฆฌ
๊ฐ๊ฐ์ app ๋ณ๋ก url์ ๊ด๋ฆฌํ๋ค.
ํ๋ก์ ํธ ํด๋ urls.py ์ ์
๊ฐ ํ๋ก์ ํธ๋ณ urls.py ์ ์
2. templates ํด๋ ๊ตฌ์กฐ
template ํ์ผ์ ๋ฐํํ๊ธฐ ์ํด์ django๋ ์๋์ ํด๋๋ค์ ํ์ํ๋ค.
DIRS ์ ์ ์๋ ๊ฒฝ๋ก์ ํ์ ๋๋ ํ ๋ฆฌ
NSTALLED_APPS ๋๋ ํ ๋ฆฌ์ templates ํด๋์ ํ์ ๋๋ ํ ๋ฆฌ ํ์
์ด ๊ณผ์ ์์ ์ค๋ณต๋ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ, ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ ์๋ค.
๋ฐ๋ผ์, ์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ค.
Form ์ ํตํ Request ์ฒ๋ฆฌ
์ฌ์ฉ์๋ค๋ก๋ถํฐ ๊ฐ์ ๋ฐ์์ (boards/new/)
๋จ์ ์ถ๋ ฅํ๋ page ๊ตฌ์ฑ (boards/complete/)
1. ์ฌ์ฉ์์๊ฒ form ์์ ์ ๊ณต
1-1 url ์ง์
1-2 view ํจ์ ์์ฑ
1-3 template
form tag์๋
action
์์ฑ์ ์ ์ํ๋ค์ฌ์ฉ์๋ก๋ถํฐ ๋ด์์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ url
input tag์๋
name
์์ฑ์ ํตํด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ด์ฉ์ ๋ด์ ๋ณ์ ์ด๋ฆ์ ์ง์ ํ๋คurl ์์
/boards/complete/?title="์ ๋ชฉ์ ๋ชฉ"
2. ์ฌ์ฉ์ ์์ฒญ ์ฒ๋ฆฌ
2-1. urls.py ์ ์
bords/url.py
2-2. views.py
boards/views.py
request
์๋ ์์ฒญ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ค์ด ๋ด๊ธด object๊ฐ ์ ์ฅ๋์ด ์๋ค
2-3. template
+
Tip) project ์ฝ๊ฒ ๋ง๋ค๊ธฐ!
Last updated