2.1.3 ํ๋ก์ ํธ ์์ํ๊ธฐ
์ ์์ ํ๊ฒฝ๊ณผ ๋์ผํ๊ฒ ํ์ด์ฌ 3.10.1์ ์ค์นํด์ค๋๋ค.
ํด๋๋ฅผ ์์ฑํ๊ณ ๊ทธ ํด๋์ ๋ค์ด๊ฐ
vscode์์ ํ์ฑํ ์์ผ์ค๋๋ค.
๊ฐ์ ํ๊ฒฝ์ด ํ์ฑ๋์์ผ๋ ์ด์ Django๋ฅผ ์ค์นํ ๋ ์ ๋๋ค.
๋ช ๋ น์ด๋ฅผ ์คํ์ํจ ๊ฒฐ๊ณผ myweb์ด๋ผ๋ ํด๋์ manage.pyํ์ผ์ด ์๊ฒผ์ต๋๋ค!
์ฌ๊ธฐ์ ์ฑ์ด๋ผ๋ ๊ฒ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
2.2 Django ํ๋ก์ ํธ ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ
2.2.1 Django ํ๋ก์ ํธ์ ์ฑ
Django์์ ์ฑ์ ํ๋ก์ ํธ ๋ด ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์์๋ค์ ์ผ์ ํ ๊ธฐ์ค์ผ๋ก ๋๋ ๋์ ๋จ์๋ฅผ ๋งํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ํ์ด์ค๋ถ์ ํ๋ก์ ํธ๊ฐ ๋ฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ํฌ๊ฒ ๋๋ด์ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋ ๋ณผ ์ ์์ ๊ฒ์ ๋๋ค.
ํ์ ๊ด๋ จ ๋ด์ฉ -> ๊ฐ์ /๋ก๊ทธ์ธ/์น๊ตฌ ๋งบ๊ธฐ ํผ๋ ๊ด๋ จ ๋ด์ฉ -> ๊ธ์ฐ๊ธฐ ์ญ์ ํ๊ธฐ/์์ ํ๊ธฐ/๊ณต์ ํ๊ธฐ
์ฐ๋ฆฌ๊ฐ ์ด๋ ๊ฒ ๋๋ ๋์ ๊ทธ๋ฃน ํ๋๋ฅผ ์ฑ์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋ฉ๋๋ค.
2.2.2 Django ํ๋ก์ ํธ ์ค์ ๋ง๋ฌด๋ฆฌํ๊ธฐ
๋ฐฉ๊ธ ๋ง๋ ์ฑ์ ์ถ๊ฐํด์ฃผ๊ณ , ์๊ฐ๋๋ฅผ ํ๊ตญ์ผ๋ก ์ค์ ํ์ต๋๋ค.
2.2.3 Django ํ๋ก์ ํธ ๊ตฌ์ฑ์์ ์ดํด๋ณด๊ธฐ
์ ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- manage.py ํ์ผ์ ์ฐ๋ฆฌ๊ฐ ๊ฑด๋๋ฆด ์ผ์ด ์์ต๋๋ค. ๊ทธ์ ์ฐ๋ฆฌ์ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ํ์ผ์ด๋ผ๊ณ ๋ง ์๊ณ ๋์ด๊ฐ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- mywebํด๋์๋ ์ฌ๋ฌ๊ฐ์ง ํ์ผ๋ค์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์์ผ๋ก ์ฌ์ฉํ๊ฒ ๋ ํ์ผ์ mysite/settings.py์ mysite/urls.py ๋ฟ์ ๋๋ค.
- mysite/settings.py: ํ๋ก์ ํธ์ ์ค์ ํ์ผ _ ์ต์ ๋ช๊ฐ์ง ์๋ค.
- mysite/urls.py ํ์ผ์ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ url ์ฃผ์๋ฅผ ๋ฑ๋กํด๋๋ ํ์ผ์ ๋๋ค.
2.2.4 Django ์ฑ ๊ตฌ์กฐ๋ก ์์๋ณด๋ MTV ํจํด
photo ํด๋๋ฅผ ์ดํด๋ณด๋ฉด 6๊ฐ์ ํ์ด์ฌ ํ์ผ๋ค๊ณผ migrations๋ผ๋ ํด๋๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ํ์ผ๋ค์ด ์ด๋ค ์ญํ ์ ํ๋์ง ์ดํดํ๊ธฐ ์ํด์ MTV ํจํด์ ๋ํด ์ดํดํ ํ์๊ฐ ์์ต๋๋ค.
Django์์๋ MTV ํจํด์ผ๋ก ์ ๋ฐ์ ์ธ ๊ฐ๋ฐ์ ์งํํฉ๋๋ค.
๊ฐ๋ฐ ํจํด์๋ ์ฌ๋ฌ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค์์๋ ์ง๊ด์ ์ด๋ก ๊ฐ๋จํ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ก MTVํจํด์ ๋๋ค.
Model -> ์ฑ์ ๋ฐ์ดํฐ
Template -> ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ๋ถ๋ถ
View -> Model์ ๋ฐ์ดํฐ๋ฅผ Template ์๊ฒ ์ ๋ฌํ๊ณ Template์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์ ๋ฆฌํ๋ ๋ถ๋ถ์ ๋๋ค.
2.3 Django Model ์์๋ณด๊ธฐ
Django ์ ๊ตฌ์ฑ์์ ์ค ํ๋์ธ model์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
2.3.1 Migration ์๋ฌ ์์ ํ๊ธฐ
๋ชจ๋ธ์ ๋ํด ์์๋ณด๊ธฐ ์ ์ ์๋ฌ๋ฅผ ๊ณ ์ณ๋ณด๊ฒ ์ต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ฉ์ํจ๋ค๋ ๋ป์ธ๋ฐ, ์ด๋ ๋์ค์ ์ฐ๋ฆฌ๊ฐ ์ง์ ๋ชจ๋ธ์ ๋ง๋ค ๋ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
2.3.2 ์ด๋๋ฏผ ํ์ด์ง ๋ค์ด๊ฐ๋ณด๊ธฐ
-> Django์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ ๊ด๋ฆฌ์ ํ์ด์ง ์ ๋๋ค.
๊ด๋ฆฌ์ ๊ณ์ ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ฝ์์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด ์์ ๊ฐ์ ๊ด๋ฆฌ์ ํ๋ฉด์ด ๋์ต๋๋ค.
2.3.3 ๋ชจ๋ธ์ด๋
Django์์ ๋ชจ๋ธ์ ์์ ๊ฐ๋จํ ์ดํด๋ดค๋ฏ, ์ฑ์ ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ถ๋ถ์ ๋ค๋ฃจ๋ ์์ญ์ ๋๋ค.
๋ชจ๋ธ์ ์กฐ๊ธ ๋ ์์ธํ ์ดํดํด ๋ณด์๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ชจ์์ ์ ์ํ๊ณ
๊ด๋ จ๋ ์ผ๋ถ ๊ธฐ๋ฅ๋ค์ ์ค์ ํด์ฃผ๋ ์์ญ์ด๋ผ๊ณ ํ ์ ์๊ฒ ์ต๋๋ค.
๋ชจ๋ธ์ ์ฝ๊ฒ ์ดํดํ๋ ๋ฒ์?
ํ์ค ์ธ์์ ์ฝ๋๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒ,
๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉ์ํค๋ฉด ๊ทธ๊ฒ์ ํ ์ด๋ธ์ด ๋๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉ์ํค๋ ๊ณผ์ ์ ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ชจ๋ธ์ ๋ง๋ค๊ณ ํจ๊ป ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด์ ์์๋ด ์๋ค!
2.3.4 Django ๋ชจ๋ธ ๋ง๋ค๊ธฐ
๋ชจ๋ธ์ ํ๋์ ํด๋์ค๋ก ๋ง๋ค ์ ์์ต๋๋ค.
์ด ํด๋์ค๋ models.py ์์ ์์ฑํ ๊ฒ์ด๊ณ ,
๋ชจ๋ธ ํด๋์ค์์๋ ์์ฑ์ ์ ์ํ๊ณ ๊ฐ ์์ฑ์ ๋ํ ์ธ๋ถ ์ค์ ์ ์งํํฉ๋๋ค.
์์ฒ๋ผ ์ฌ์ง ๋ชจ๋ธ์ Photo๋ผ๋ ํด๋์ค๋ก ์ ์ํ์๋๋ฐ, ์ผ๋ฐ์ ์ธ ํด๋์ค์ ์ด์ง ๋ค๋ฅธ ์ ์
- models.Model์ ์์๋ฐ์๋ค๋ ์ ๊ณผ
- ๊ฐ ์์ฑ์ models๋ฅผ ์ฌ์ฉํด ์ ์ํ์๋ค๋ ์ ์ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ๋ง๋ค ๋ models.Model์ด๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์์ ๊ทธ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ๊ฐ์ ธ๋ค ์ธ ์ ์์ต๋๋ค.
2.3.5 Django ๋ชจ๋ธ ์ ์ฉ์ํค๊ธฐ
Django์์ฌ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉ์ํค๋ ๊ณผ์ ์ ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ผ๊ณ ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ๋ณํ๊ฐ ์๊ฒผ์ ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ผ๊ณ ํ๋ ๊ณผ์ ์ ํตํด ํ๋ก์ ํธ์ ๋ชจ๋ธ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ์ํต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ด๋ผ๋ ํฐ ๊ณผ์ ์ ์ธ๋ถํํ์ฌ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. makemigrations : ์ฐ๋ฆฌ๊ฐ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ ๋ด์ฉ์ ๊ธฐ๋กํ์ฌ ํ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ ๋๋ค.
2. migrate : makemigrations์์ ์์ฑ๋ ํ์ผ์ ์ค์ ๋ก ์คํ์์ผ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ์์ผ์ฃผ๋ ๊ณผ์ ์ ๋๋ค.
์ ๋ ๋ณ๊ฒฝํ๊ฒ ์์ผ๋ ์ด๋ ๊ฒ ๋จ๋ค์ ์ํผ,
์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น์?
Django์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ธ ์ด๋๋ฏผ ํ์ด์ง์์ ์ด๋ฅผ ์์ฃผ ๊ฐ๋จํ ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
2.3.6 Django ๋ชจ๋ธ ์ด๋๋ฏผ ํ์ด์ง ์ ์ฉ
์ด๋๋ฏผ ํ์ด์ง์ Photo ๋ชจ๋ธ์ ๋ฑ๋กํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด Photo ํญ ์์ Photo ๋ผ๋ ๋ชจ๋ธ์ ๋ค๋ฃฐ ์ ์๋ Photos ๋งํฌ๊ฐ ์๊ฒจ๋ฌ์ต๋๋ค.
save๋ฅผ ๋๋ฆ ๋๋ค.
๋ชฉ๋กํ๋ฉด์ผ๋ก ๋์์ค๋ ๊ฒ์ ๋ณผ ์ ์๊ณ ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ๋ฑ๋กํ ์ฌ์ง๊น์ง ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค์.
์ฌ๊ธฐ๊น์ง ์์ฃผ ๊ธฐ๋ณธ์ ์ธ Django์ ๋ชจ๋ธ์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ์์ฑํ ๋ชจ๋ธ์ ์กฐ๊ธ ๋ ๋ณต์กํ๊ณ , ๊ธฐ๋ฅ๋ ์ถ๊ฐํ๋ ๋ฑ ์ข ๋ ์ด๋ ค์์ง ๊ฒ์ ๋๋ค.
์ด์ MTV์ 3์์ ์ค Model์ ์ดํด๋ณด์์ผ๋ ๋ค์์ Template์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.