#8 ์ฅ๊ณ Template์ extends, include ๊ตฌ๋ฌธ๊ณผ render ํจ์
HTML์ ์ฌ์ฉํ ์ฅ๊ณ ํ ํ๋ฆฟ ์ฌ์ฉ๋ฒ
HTML(Hyper Text Markup Language)
์์ฃผ ์ฐ์ด๋ ๊ตฌ๋ฌธ
extends
- pre-made, template,html ๋ฑ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ ๋ธ๋ก๋ค์ด ์์ ๋ ์ฑ์๋๊ฐ๋ ๋๋
- ๋ฐํ์ ์ฑ์๋๊ฐ๋ ๋๋
includes
- ๋ง๋ค๊ณ ์๋ ํ์ผ๋ค์ด ์์ผ๋ฉด ๊ทธ๊ฑธ ๋ฃ์ด์ฃผ๋ ๋๋
- ๋๋ฏธ๋ฅผ ๊ฐ์ ธ์์ ๊ฐ๋ค๋ถ์ด๋ ๋๋
templates ์์ฑ
ํ๋ก์ ํธ ํ์ผ > templates ๋๋ ํ ๋ฆฌ ์์ฑ > base.html ์์ฑ
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>TITLE</title></head><body></body></html>
๊ธฐ๋ณธ ์ฝ๋
์ด๊ฑฐ๋ฅผ views.py์์ render๋ก returnํ๊ธฐ
def hello_world(request): return render(request,'base.html')
๋ฐ๋ก ์คํํด๋ณด๋ฉด ํ ํ๋ฆฟ์ด ์กด์ฌํ์ง ์๋๋ค๊ณ ๋ธ
⇒ settings.py์ TEMPLATES ๋ฆฌ์คํธ์ DIRS ์์ ํ์(ํด๋ ์ด๋ฆ ์ถ๊ฐ)
'DIRS': [os.path.join(BASE_DIR,'templates')],
๋ค์ ์คํํด๋ณด๋ฉด TITLE ์ ๋ธ
#9 include/extends/block ๊ตฌ๋ฌธ์ ์ด์ฉํ ๋ผ๋ html ๋ง๋ค๊ธฐ
๋ผ๋ ๋ง๋ค๊ธฐ
head ๋ถ๋ถ include๋ก ๋ถ๋ฆฌํ๊ธฐ
head ํํธ head.html์ ๋บ ํ,
{%include 'head.html%}
๋ก ์ฝ์ ํด์ฃผ๊ธฐ
body ๋ถ๋ถ div ๋ธ๋ก ๋๋๊ธฐ
์ธ ๊ฐ์ div ์์ฑ ํ ์คํ์ผ ์ ํ์ฃผ๊ธฐ (์ด๋, alt๋ฅผ ๋๋ฅด๊ณ ์ปค์๋ฅผ ๋๋ฅด๋ฉด ๋ค์ค ์์ ๊ฐ๋ฅ)
์ด๋ฐ์์ผ๋ก ๊ตฌํ๋จ
header.html / block / footer.html ๋ก ๊ตฌ๋ถ
์์ ๊ฐ์ด ๊ตฌ๋ถํ๋ฉด block ๋ง ๋ค๋ฅธ ๋ฐ์์ ๋ถ๋ฌ์ฌ ๋ ์์ ๊ฐ๋ฅ
์ด๋ฐ์์ผ๋ก accountapp ๋ด์ hello_world.html์์ content ๋ธ๋ก ์์ ๋ค์ด๊ฐ ๋ด์ฉ๋ง ์์ (๋๋จธ์ง(header,footer)๋ ์ฌ์ฌ์ฉํ๋ ๊ฒ)
#10 style, ๊ตฌ๊ธ ํฐํธ๋ฅผ ํตํด Header, Footer ๊พธ๋ฏธ๊ธฐ
header ๊พธ๋ฏธ๊ธฐ
header ๊พธ๋ฏผ ํ f12 (๊ฐ๋ฐ์๋ชจ๋) ๋ฅผ ํตํด
์ด๋ป๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธ ๊ฐ๋ฅ
(์ฃผํฉ์ : margin , ํ๋์ : ์ค์ ๋ด์ฉ๋ค)
elements ์์ test-align ์ ํตํด ์ ๋ ฌ ๊ธฐ์ค ์์ ๊ฐ๋ฅ (์ผ์์ )
์๊ตฌ์ ์ผ๋ก ์ ์ฉํ๋ ค๋ฉด ํด๋น ๋ด์ฉ์ ๊ฐ์ธ๋ div์์ style ์ฒ๋ฆฌํด์ฃผ๊ธฐ
์ด์ธ์๋ margin ๋ฑ ์ฌ๋ฌ ์์๋ค ์์ ~~
bootstrap ์ด์ฉํ๊ธฐ
ํด๋น ๋งํฌ ์ฐธ๊ณ ํด์ head.html์ ์ถ๊ฐํ๊ธฐ
ํฐํธ ์ ํ๊ธฐ
๊ตฌ๊ธ ํฐํธ์์ ๋ง์์ ๋๋ ํฐํธ ์ฐพ์ ํ select → ๋์ค๋ ๋งํฌ ๋ณต์ฌ ํ head์ bootstrap์ฒ๋ผ ๋ถ์ฌ๋ฃ๊ธฐ
font-family: 'Vina Sans', sans-serif; ๋ฅผ ๋ณต์ฌํด์ ์ฌ์ฉํ๊ณ ์ถ์ div์ ์คํ์ผ์ ๋ถ์ฌ๋ฃ์ด์ฃผ๊ธฐ
์ด๋ฐ์์ผ๋ก ์์
๋ฐํ์๋์ ์ธํ๋ฐ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉฐ ์ ๋ฆฌํด๋ณด๋ ๊ธ์ ๋๋ค.
https://www.inflearn.com/course/%EC%9E%A5%EA%B3%A0-%ED%95%80%ED%84%B0%EB%A0%88%EC%8A%A4%ED%8A%B8