ToyPJ/Python-Django

[ToyPJ/Python] django ๋กœ ์ธ์Šคํƒ€๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ - 02 django ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…, ๋‚˜๋งŒ์˜ ํŽ˜์ด์ง€ ๋„์›Œ๋ณด๊ธฐ

hellosonic 2023. 3. 27. 15:55

๐Ÿ“Œ 01. ํŒŒ์ด์ฐธ ์„ค์น˜ํ•˜๊ณ  ์›นํŽ˜์ด์ง€ ๋„์›Œ๋ณด๊ธฐ

์ด๋ฒˆ ํ† ์ดํ”„๋กœ์ ํŠธ๋Š” JetBrains๊ฐ€ ๋งŒ๋“  ๊ฐœ๋ฐœ์ž์šฉ ํŒŒ์ด์ฌ IDE์ธ ํŒŒ์ด์ฐธ(Pycharm)์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. 

์žฅ๊ณ ๋Š” ์„ค์น˜ํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ์›นํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์žฅ๊ณ ๋Š” python manage.py runserver๋ผ๋Š” ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ๋ชจ๋“œ๋กœ ์›น์„œ๋ฒ„๋ฅผ ์ง€์›ํ•ด์ค€๋‹ค. 

์žฅ๊ณ  ๊ธฐ๋ณธ ์›นํŽ˜์ด์ง€!

๐Ÿค” ์–ด๋–ป๊ฒŒ ์‹คํ–‰์ด ๋  ์ˆ˜ ์žˆ์„๊นŒ?

python manage.py runserver๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์žฅ๊ณ  ์„œ๋ฒ„๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰์ด ๋˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์—๋Š” ์–ด๋–ป๊ฒŒ ์ ‘์†ํ• ๊นŒ? 

๋ณดํ†ต ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ip์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ip๋Š” ์ˆซ์ž๋กœ ๋˜์–ด์žˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์™ธ์šฐ๊ธฐ ์‰ฝ์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ "๋„๋ฉ”์ธ ์ด๋ฆ„" ์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” google.com, naver.com์ด ๋ฐ”๋กœ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ธŒ๋ผ์šฐ์ €์— google.com์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด, "๋„๋ฉ”์ธ ์ด๋ฆ„ ์„œ๋ฒ„" ์ฆ‰, "DNS"์—์„œ google.com์˜ ip์ฃผ์†Œ๋ฅผ ์ฐพ์•„์„œ ํ™”๋ฉด์— ๊ตฌ๊ธ€ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค.

์žฅ๊ณ ๋ฅผ ํ†ตํ•ด ๋„์›Œ์ง„ ์›นํŽ˜์ด์ง€์˜ ์ฃผ์†Œ์ฐฝ์— ์ ํ˜€ ์žˆ๋Š” ip์ฃผ์†Œ๋ฅผ ๋ณด๋ฉด "127.0.0.1"์ด๋ผ๊ณ  ์ ํ˜€์žˆ๋‹ค. ์ด๊ฒƒ์€ localhost๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ ์ž๊ธฐ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ip์ฃผ์†Œ์ด๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ ์ปดํ“จํ„ฐ์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ 127.0.0.1์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด, ์šฐ๋ฆฌ์˜ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜๊ฒ ๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ 127.0.0.1 ์ด๋ผ๋Š” ip์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด, ์šฐ๋ฆฌ ๊ฐ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ ์žฅ๊ณ  ํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ด์œ ์ด๋‹ค.

 

๐Ÿ“Œ 02. ์žฅ๊ณ  ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

๐Ÿ”Ž ๋‹ค๋ฅธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•„์ˆ˜ 3์š”์†Œ - MVC(Model, View, Controller)

  • Model : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • View : ํ…์ŠคํŠธ, ์ฒดํฌ๋ฐ•์Šค ํ•ญ๋ชฉ ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • Controller : ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‚ฌ์ด์˜ ์ƒํ˜ธ ๋™์ž‘์„ ๊ด€๋ฆฌํ•จ

MVC ํŒจํ„ด : ๋””์ž์ธ ํŒจํ„ด(์–ด๋–ค ํŠน์ •ํ•œ ๊ฒƒ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ค‘ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ์ •๋ฆฌํ•ด์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ์šฉํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜์—ฌ ํŠน์ •ํ•œ '๊ทœ์•ฝ'์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“  ๊ฒƒ) ์ค‘ ํ•˜๋‚˜๋กœ, ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜, ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ทธ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ํŒจํ„ด.

MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ๊ฐ์ ์ธ ์š”์†Œ๋‚˜ ๊ทธ ์ด๋ฉด์—์„œ ์‹คํ–‰๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„œ๋กœ ์˜ํ–ฅ ์—†์ด ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”Ž ์žฅ๊ณ ์˜ MVT ํŒจํ„ด (Model, View, Template)

  • Model : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ (๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•„์š”ํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ฉด ORM์ด ์ž๋™์œผ๋กœ ์ ์ ˆํ•œ SQL ๊ตฌ๋ฌธ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌ)
  • Template : ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” UI ๋ถ€๋ถ„ (MVC ๋ชจ๋ธ์—์„œ View์— ํ•ด๋‹นํ•˜๋Š” ํŒŒํŠธ)
  • View : ์‹ค์งˆ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง์ด ๋™์ž‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ…œํ”Œ๋ฆฟ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ•  (MVC ๋ชจ๋ธ์—์„œ Controller์— ํ•ด๋‹นํ•˜๋Š” ํŒŒํŠธ)

์žฅ๊ณ ์˜ MVT ํŒจํ„ด

๐Ÿ”Ž ์›น ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์žฅ๊ณ ์—์„œ MVT ํŒจํ„ด์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •

  1. ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด URLconf๋ฅผ ์ด์šฉํ•˜์—ฌ URL์„ ๋ถ„์„ํ•œ๋‹ค.
  2. URL ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น URL์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•  ๋ทฐ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  3. ๋ทฐ๋Š” ์ž์‹ ์˜ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋งŒ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋ชจ๋ธ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›๋Š”๋‹ค.
  4. ๋ทฐ๋Š” ์ž์‹ ์˜ ๋กœ์ง ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•  HTML ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.
  5. ๋ทฐ๋Š” ์ตœ์ข… ๊ฒฐ๊ณผ๋กœ HTML ํŒŒ์ผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด ์‘๋‹ตํ•œ๋‹ค. 

 

๐Ÿ“Œ 03. ์—ฌ๋Ÿฌ ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด?

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ djangoProject๋ผ๋Š” ํด๋”๋Š” ํ”„๋กœ์ ํŠธ์˜ ์„ค์ • ํด๋” ์—ญํ• ์„ ํ•œ๋‹ค. ์•ˆ์˜ ํด๋”๋ฅผ ๋ณด๋ฉด settings.py ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์•„๋ž˜ urls.py๋ผ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ ํŒŒ์ผ์ด ์žˆ๋‹ค. ์ด urls.py๋ผ๋Š” ํŒŒ์ผ์ด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“œ๋Š” ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ์ค‘์š”ํ•œ ํŒŒ์ผ์ด๋‹ค. ์†Œ์Šค ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋ฉด ํ˜„์žฌ๋Š” ๋””ํดํŠธ๋กœ admin์ด๋ผ๋Š” urlpatterns๊ฐ€ ๋“ฑ๋ก๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (main/์€ ์ถ”๊ฐ€ํ•œ url์ด๋‹ค.)

urls.py - urlpatterns์— ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  html ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

urlpatterns๋Š” ์šฐ๋ฆฌ์˜ ์„œ๋ฒ„ ์ฃผ์†Œ ๋’ค์— ํŠน์ • ์ฃผ์†Œ๋ฅผ ๋”ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ฌ์ง€ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, http://127.0.0.1:8000/admin/ ์œผ๋กœ ์ ‘์†ํ•˜๋ฉด admin.site.urls๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์žฅ๊ณ ๋Š” ๊ธฐ๋ณธ์œผ๋กœ admin ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค. http://127.0.0.1:8000/admin/ ๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž.

http://127.0.0.1:8000/admin/

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด, templates ํด๋”์— html ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  (๋‚˜๋Š” main.html์„ ๋งŒ๋“ค์—ˆ๋‹ค.) ์ƒ์„ฑ๋œ html ํŒŒ์ผ์— html์„ ์ž‘์„ฑํ•œ ํ›„์— urls.py ์— ๋งŒ๋“  html ํŒŒ์ผ์˜ ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ urls.py๊ฐ€ ๋ฐ”๋กœ html์„ ์—ฐ๊ฒฐํ•  ์ˆ˜๋Š” ์—†๊ณ  ์ค‘๊ฐ„์— ์†Œ์Šค ํ•˜๋‚˜๊ฐ€ ๋” ํ•„์š”ํ•˜๋‹ค. ๋ฐ”๋กœ views.py๋ผ๋Š” ํŒŒ์ด์ฌ ์†Œ์ŠคํŒŒ์ผ์ด๋‹ค.

views.py

(APIView๋Š” djangorestframework๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.(ํŒŒ์ด์ฌ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“ค์–ด ๋†“์€ ์ฝ”๋“œ๋ฅผ ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•˜์—ฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.) pip install djangorestframework๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์€ ํฌ์ŠคํŒ… ์ƒ๋žตํ•œ๋‹ค.)

 

์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด Class Sub(APIView): ๋ผ๋Š” ๊ฒƒ์€ Sub ๋ผ๋Š” ํด๋ž˜์Šค(๊ธฐ๋Šฅ)๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๊ทธ ํด๋ž˜์Šค๋Š” APIView์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. APIView๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” HTTP ํ†ต์‹ ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํŠน์ • ํ™ˆํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐˆ ๋•Œ ์ฃผ์†Œ ๋งจ์•ž์— ์ ๋Š” HTTP๊ฐ€ ๋ฐ”๋กœ ์ด HTTP ํ†ต์‹ ์ด๋‹ค. HTTP ํ†ต์‹  ์•ˆ์—๋„ ๋˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์œผ๋กœ get, post๊ฐ€ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ™ˆํŽ˜์ด์ง€ ์กฐํšŒ๋Š” get ๋ฐฉ์‹, ํŠน์ • ์ž‘์—…์„ ์š”์ฒญํ•  ๋•Œ๋Š” post๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ง€๊ธˆ์€ ํŽ˜์ด์ง€๋งŒ ์กฐํšŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— get์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

 

Class Sub ์•ˆ์˜ getํ•จ์ˆ˜๋Š” ๋ฐ”๋กœ "์ด ํด๋ž˜์Šค๋Š” get์œผ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ"๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  return render(request, "hwangstagram/main.html")์€ get์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด render๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. render๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  html์„ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, Sub ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ get์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด main.html์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ์ด Sub๋ฅผ urls.py์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

urls.py์— APIView ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํด๋ž˜์Šค ์†Œ์ŠคํŒŒ์ผ ์ถ”๊ฐ€

sub.as_view()๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

๐Ÿ“š์š”์•ฝํ•˜์ž๋ฉด

  1. templates ํด๋” ์•ˆ์— html ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.
  2. ์ด html ํŒŒ์ผ์„ urls.py์— ์ถ”๊ฐ€ํ•˜๋ฉด html ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ฃผ์†Œ๋กœ ๊ฐ–๋Š” ์›นํŽ˜์ด์ง€์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ํ•˜์ง€๋งŒ ๊ทธ ์ „์— view.py์— "html์„ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ์ค˜"๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•ด์•ผ๋œ๋‹ค.
  4. ๊ทธ๋ฆฌ๊ณ  views.py์—์„œ ๋งŒ๋“  ํด๋ž˜์Šค๋ฅผ urls.py์— ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ 

<(templates/oo.html) ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์›นํŽ˜์ด์ง€>๋ฅผ <(views.py)html์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ>์„ ํ†ตํ•ด <(urls.py)>์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

์ถœ์ฒ˜ :

https://learning-archive.tistory.com/117

https://butter-shower.tistory.com/49

https://hongong.hanbit.co.kr/์žฅ๊ณ django์˜-mvt-ํŒจํ„ดmodel-view-template/

 

 

 

https://cholol.tistory.com/548

 

์ด ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชจ๋“  ์ €์ž‘๊ถŒ์€ ๋งˆ์ด์ฎธ(mychew__)๋‹˜๊ป˜ ์žˆ์œผ๋ฉฐ, ์ €๋Š” ์˜ค์ง ํ•™์Šต๊ณผ ๊ธฐ๋ก์„ ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ…ํ•œ ๊ฒƒ์ž„์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ข‹์€ ๊ฐ•์˜ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ด์ฃผ์‹  ๋งˆ์ด์ฎธ๋‹˜๊ป˜ ๊ฐ์‚ฌ์˜ ๋ง์”€ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. (_ _)