๐Ÿฆ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 11๊ธฐ/Do it! ์ ํ”„ ํˆฌ ์žฅ๊ณ 

02 ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์š”์†Œ ์ตํžˆ๊ธฐ!_ 1. ์ฃผ์†Œ์™€ ํ™”๋ฉด์„ ์—ฐ๊ฒฐํ•˜๋Š” URL๊ณผ ๋ทฐ

1son 2023. 3. 22. 18:31

ํ•™์Šต๋ชฉํ‘œ 

- ์•ž์œผ๋กœ ๋งŒ๋“ค 'ํŒŒ์ด๋ณด'๊ฐ€ ์™„์„ฑ๋œ ๋นŒ๋”ฉ์ด๋ผ๋ฉด ์ด ์žฅ์€ ๊ธฐ์ดˆ ๊ณต์‚ฌ์— ํ•ด๋‹นํ•œ๋‹ค. 

- urls.py ํŒŒ์ผ์„ ์ด์šฉํ•ด URL๊ณผ ๋งคํ•‘๋˜๋Š” ๋ทฐ ํ•จ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. 

- ์žฅ๊ณ  ORM์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•œ๋‹ค. 

- ํŒŒ์ด๋ณด ๊ฒŒ์‹œํŒ์— ์งˆ๋ฌธ ๋ชฉ๋ก๊ณผ ์งˆ๋ฌธ ์ƒ์„ธ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ ๋‹ค. 

 

02-1 ์ฃผ์†Œ์™€ ํ™”๋ฉด์„ ์—ฐ๊ฒฐํ•˜๋Š” URL๊ณผ ๋ทฐ

์ด์ œ๋ถ€ํ„ฐ ํŒŒ์ด๋ณด๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์žฅ๊ณ ์˜ ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณผ ๊ฒƒ 

๊ฐ€์žฅ ๋จผ์ €, ์š”์ฒญ URL์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋˜ ์–ด๋–ป๊ฒŒ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ์„ ํ˜ธ์ถœํ•˜๋Š” ์ง€ ์•Œ์•„๋ณด์ž. 

 

01 pybo ์•ฑ ์ƒ์„ฑํ•˜๊ธฐ 

 

 

02 ์ƒ์„ฑ๋œ ์•ฑ ํ™•์ธํ•˜๊ธฐ 

pybo๋ผ๋Š” ์ด๋ฆ„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 


 

๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด ์‹ค์Šต์„ ๋ฌด์ž‘์ • ๋”ฐ๋ผ ํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค. 

 

๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์‹ถ์€ ์กฐ๊ธ‰ํ•œ ๋งˆ์Œ์€ ์ดํ•ดํ•˜์ง€๋งŒ, ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ ์ด์œ ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ

์ดํ•ดํ•˜๋ฉด์„œ ๋”ฐ๋ผ ํ•ด์•ผ ์ข‹์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

01 ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™ํ•˜๊ธฐ 

 

02 localhost:8080/pybo์— ์ ‘์†ํ•˜๊ธฐ 

์•ž์œผ๋กœ ์ด ๊ณผ์ •์„ 'ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค' , 'localhost:8000'์„ ์ƒ๋žตํ•˜์—ฌ '/pybo/๋ฅผ ์š”์ฒญํ•œ๋‹ค'๋ผ๊ณ  ํ•  ๊ฒƒ์ด๋‹ค. 

 

03 ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ํ™•์ธํ•˜๊ธฐ 

 

 

404 -> HTTP ์˜ค๋ฅ˜ ์ฝ”๋“œ ์ค‘ ํ•˜๋‚˜๋กœ , ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ด๋‹ค. 

-> ์žฅ๊ณ ๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์˜ค๋ฅ˜ ์›์ธ์„ ์›น ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์— ์ž์„ธํžˆ ๋ณด์—ฌ์ค€๋‹ค. 

 

์ด ์˜ค๋ฅ˜๊ฐ€ ์™œ ๋ฐœ์ƒํ–ˆ์„๊นŒ? 

 

์žฅ๊ณ ๋Š”! 

์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ /pybo/๋ผ๋Š” ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด 

ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” URL ๋งคํ•‘์ด ์žˆ๋Š”์ง€ config/urls.py ํŒŒ์ผ์„ ๋’ค์ ธ ์ฐพ์•„๋ณธ๋‹ค. 

-> ๊ทธ๋Ÿฐ๋ฐ ์•„์ง /pybo/ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” URL ๋งคํ•‘์„ ์žฅ๊ณ ์— ๋“ฑ๋กํ•˜์ง€ ์•Š์•˜๋‹ค. 

๊ทธ๋ž˜์„œ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ธ ๊ฒƒ 

 

 

04 config/urls.py ์ˆ˜์ •ํ•˜๊ธฐ 

์ด์ œ ์žฅ๊ณ ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ํŽ˜์ด์ง€ ์š”์ฒญ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก

config/urls.py ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ž.

์•ž์œผ๋กœ ์ด๋ฅผ 'URL ๋งคํ•‘์„ ์ถ”๊ฐ€ํ•œ๋‹ค'๊ณ  ๋งํ•  ๊ฒƒ์ด๋‹ค. 

 

views.index๋Š” views.py ํŒŒ์ผ์˜ index ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

์žฅ๊ณ ๋Š” ์ด๋Ÿฐ ์‹์œผ๋กœ URL๊ณผ ๋ทฐ ํ•จ์ˆ˜๋ฅผ ๋งคํ•‘ํ–ˆ๋‹ค. 

 

05 config/urls.py ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ธฐ 

- ์—ฌ๊ธฐ์„œ urlpatterns์— ํ˜ธ์ŠคํŠธ๋ช…๊ณผ ํฌํŠธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ, 

- pybo์— ์Šฌ๋ž˜์‹œ๋ฅผ ๋ถ™์—ฌ ์ž…๋ ฅํ•œ๋‹ค๋Š” ๊ฒƒ

 

 

06 ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ํ™•์ธํ•˜๊ธฐ 

 

config/urls.py ํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ์Œ์—๋„ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋Š” 

URL ๋งคํ•‘์— ์ถ”๊ฐ€ํ•œ ๋ทฐ ํ•จ์ˆ˜ views.index๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

07 pybo/views.py ์ž‘์„ฑํ•˜๊ธฐ 

 

pybo/views.py ํŒŒ์ผ์— index ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ž

 

return ๋ฌธ์— ์‚ฌ์šฉ๋œ HttpResponse๋Š” ํŽ˜์ด์ง€ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์žฅ๊ณ  ํด๋ž˜์Šค์ด๋‹ค. 

 HttpResponse์— ๋ฌธ์ž์—ด์„ ์ „๋‹ฌํ•˜์—ฌ ์ด ๋ฌธ์ž์—ด์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.

 

 

08 ์ฒซ ๋ฒˆ์งธ ์žฅ๊ณ  ํ”„๋กœ๊ทธ๋žจ ์™„์„ฑ! 

 


02

์ด๋ ‡๊ฒŒ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค. ๋œป์€, 

path('pybo/', include('pybo.urls'))๋Š” pybo/๋กœ ์‹œ์ž‘๋˜๋Š” ํŽ˜์ด์ง€ ์š”์ฒญ์€

๋ชจ๋‘ pybo/urls.py ํŒŒ์ผ์— ์žˆ๋Š” URL ๋งคํ•‘์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. 

 

 

03 pybo/urls.py ์ƒ์„ฑํ•˜๊ธฐ 

04 pybo/urls.py ์ˆ˜์ •ํ•˜๊ธฐ 

config/urls.py ํŒŒ์ผ์—์„œ pybo์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ ์ƒํƒœ์—์„œ pybo/urls.py ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋ฏ€๋กœ 

์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— pybo/๊ฐ€ ์•„๋‹Œ ๋นˆ ๋ฌธ์ž์—ด('')์„ ์ธ์ž๋กœ ๋„˜๊ฒจ์ค€ ๊ฒƒ์ด๋‹ค. 

 

 

์™„๋ฃŒ :)