MTV๋ Django์ ๋์์ธ ํจํด์
๋๋ค. ๋์์ธ ํจํด์ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ฝ๋ฉ ๊ท์น, ํ๋ก์ ํธ ๊ตฌ์กฐ ์ ๋๋ก ์ดํดํ์๋ฉด ๋ฉ๋๋ค. ์ฆ, Django๋ Model
, Template
, View
์ ์ธ๊ฐ์ง ๊ตฌ์ฑ ์์๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. Template
๊ณผ View
๋ ์ด์ ์ธ์
์์ ๋ค๋ฃจ์ด๋ณด์์ฃ . ์ด๋ฒ ์ธ์
์์ ๋ง์ง๋ง์ผ๋ก Model
์ ๋ค๋ฃจ์ด๋ณผ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ MTV ํจํด์ ๋ํด ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ๋ด
์๋ค.
Model์ Modeling์ ํตํด ๋ง๋ค์ด์ง๋ ์ถ์์ ์ธ ๊ฐ๋ ์ผ๋ก, Database์ ํ ์ด๋ธ ํํ๋ก ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ์ ๋๋ค. ์ฝ๊ฒ ๋งํด, ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋๋ค.
๋ชจ๋ธ์ ํ์ด๊ณ , ๊ทธ ํ๋ก ์ฐ์ด๋ธ ์ํ ํ๋ํ๋๋ฅผ ๊ฐ์ฒด๋ผ๊ณ ํฉ๋๋ค.
- ๋ฉ๋ดํ ๋ชจ๋ธ: ์์์ด๋ฆ, ๊ฐ๊ฒฉ, ์นผ๋ก๋ฆฌ
- ๊ฐ์ฒด 1: ์ผ๊ฒน์ด ๊น์น ์ฒ ํ, 4800์, 700kcal
- ๊ฐ์ฒด 2: ์ฐธ์น๊น๋ฐฅ, 2500์, 400kcal
์์ฑ๋ ๊ฐ์ฒด๋ค์ Database์ ์ ์ฅ๋ฉ๋๋ค. DB๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ์ด์ฃ . ์๋ DB๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์๋ SQL์ด๋ผ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. ํ์ง๋ง ์ฅ๊ณ ๋ ์ด SQL์ ๋ชฐ๋ผ๋ DB ์์
์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋
ORM(Object Relation Mapping)
์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ SQL๋ฌธ ์์ด ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
Template์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ญํ ์ ๋๋ค. ๋ํ์ ์ผ๋ก HTML ํ์ผ์ด ์๊ฒ ์ฃ .
View๋ ์์ฒญ์ ๋ํ ์๋ต์ ํ๋ ๊ณณ์ ๋๋ค. Client์ Request๋ฅผ ๋ฐ๊ณ ๊ทธ์ ๋ง๋ Response๋ฅผ ํ๋ ๊ณณ์ด์ฃ . ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ MTV์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ ํ๊ต์ ์๋ก์์์ ํ์์ ๋จน๋ ์ํฉ์ผ๋ก ๋น์ ํด ์ฝ๊ฒ ์ดํด๋ฅผ ํด๋ณผ ์ ์์ต๋๋ค. ํ์์ด ๋ฉ๋ด๋ฅผ ์๋ก์ ์ฃผ๋ฐฉ(View)์ ์ฃผ๋ฌธ(Request)ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฃผ๋ฐฉ(View)์์๋ ์ฃผ๋ฌธ์ ๋ง๋ ๋ฉ๋ด๋ฅผ ์ฐพ์ ํด๋น ๋ฉ๋ด๋ฅผ(Model) ๊ธฐ๋ณธ ๋ฐ์ฐฌ๋ค์ด ์ฌ๋ ค์ ธ์๋ ์ํ(Template)์ ๋ณด๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ผ๋ก ์์์ด ๋ชจ๋ ๋ด๊ธด ์ํ(Template)์ ํ์์๊ฒ ์ค๋๋ค.(Response)