๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Python Programming/Frameworks

< django - 3 >

by A Lim Han 2022. 7. 28.

3. ์žฅ๊ณ ์˜ ๊ธฐ๋ณธ ์š”์†Œ - URL๊ณผ ๋ทฐ + ์•ฑ(App) + ์žฅ๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ + ์žฅ๊ณ  ๊ฐœ๋ฐœ ํ๋ฆ„ + URL ๋ถ„๋ฆฌ

 

 

 

# ๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” pybo ์•ฑ(App) ์ƒ์„ฑํ•˜๊ธฐ

: mysite ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์•ฑ์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

-> ๋ช…๋ น ํ”„๋กฌํฌํŠธ์—์„œ django-admin์˜ startapp ๋ช…๋ น์„ ํ†ตํ•ด pybo ์•ฑ์„ ์ƒ์„ฑํ•œ๋‹ค.

 

 

# ์žฅ๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

: ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8000/pybo ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ "์•ˆ๋…•ํ•˜์„ธ์š” pybo์— ์˜ค์‹ ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค."๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

 

 

1. ๋กœ์ปฌ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™์‹œํ‚จ๋‹ค.

 

 

 

2. ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8000/pybo ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค.

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

 

--> ํŽ˜์ด์ง€์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ์˜ค๋ฅ˜์˜ ์›์ธ : config/urls.py ํŒŒ์ผ์— ์š”์ฒญํ•œ pybo/ URL์— ํ•ด๋‹นํ•˜๋Š” ๋งคํ•‘์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ

 

 

 

3. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, config/urls.py ํŒŒ์ผ์— pybo/ URL์— ๋Œ€ํ•œ ๋งคํ•‘์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

+ ์žฅ๊ณ ์˜ urls.py ํŒŒ์ผ์€ ํŽ˜์ด์ง€ ์š”์ฒญ ๋ฐœ์ƒ ์‹œ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœ๋˜๋Š” ํŒŒ์ผ์ด๋ฉฐ, ๋ทฐ ํ•จ์ˆ˜์™€ URL ๊ฐ„์˜ ๋งคํ•‘์„ ์ •์˜ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

+ ๋ทฐ ํ•จ์ˆ˜ : views.py ํŒŒ์ผ์— ์ •์˜๋œ ํ•จ์ˆ˜

 

 

 

4. URL ๋งคํ•‘์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด config/urls.py ํŒŒ์ผ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•œ๋‹ค.

pybo/ URL์ด ์š”์ฒญ๋˜๋ฉด views.index๋ฅผ ํ˜ธ์ถœํ•˜๋ผ๋Š” ๋งคํ•‘์„ urlpatterns์— ์ถ”๊ฐ€ํ•จ

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

 

+ ํ˜ธ์ŠคํŠธ(http://localhost:8000/pybo์—์„œ์˜ localhost), ํฌํŠธ(http://localhost:8000/pybo์—์„œ์˜ 8000)๋Š” ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋ณ€ํ•œ๋‹ค. -> urlpatterns ์—์„œ ์‹ค์ œ URL(http://localhost:8000/pybo)์ด ์•„๋‹Œ ํ˜ธ์ŠคํŠธ์™€ ํฌํŠธ๋ฅผ ์ƒ๋žตํ•œ pybo/ ๋กœ ๋งคํ•‘

 

+ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด URL ๋งคํ•‘ ์‹œ ํ•ญ์ƒ ๋์— ์Šฌ๋ž˜์‹œ(/)๋ฅผ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค.

 

 

 

5. ๋‹ค์‹œ http://localhost:8000/pybo ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค.

: URL ๋งคํ•‘์— ์ถ”๊ฐ€ํ•œ ๋ทฐ ํ•จ์ˆ˜(views.index)๊ฐ€ ์—†์–ด ์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

 

 

6. pybo/views.py ํŒŒ์ผ์— index ํ•จ์ˆ˜ ์ถ”๊ฐ€ํ•ด์„œ ์˜ค๋ฅ˜ ์ œ๊ฑฐํ•˜๊ธฐ

+ HttpResponse ๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์‹œ ์‚ฌ์šฉ -> "์•ˆ๋…•ํ•˜์„ธ์š” pybo์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์”€

 

+ request (index ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜) ๋Š” HTTP ์š”์ฒญ ๊ฐ์ฒด์ž„

 

 

 

7. ๋‹ค์‹œ http://localhost:8000/pybo ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญ

+ ์ฃผ์˜!

๋งŒ์•ฝ ๋ช…๋ น ํ”„๋กฌํฌํŠธ๋ฅผ ๊ป๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ ๋ทฐ ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ•œ ํ›„ mysite -> python manage.py runserver ์„ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํŽ˜์ด์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. ์ด๋ ‡๊ฒŒ ์•ˆํ•˜๋ฉด localhost๊ฐ€ ์š”์ฒญ์„ ๊ฑฐ์ ˆํ–ˆ๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค......

 

 

 

# ์žฅ๊ณ  ๊ฐœ๋ฐœ ํ๋ฆ„ ์ •๋ฆฌ

1. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ์ปฌ ์„œ๋ฒ„๋กœ http://localhost:8000/pybo ํŽ˜์ด์ง€ ์š”์ฒญ

2. urls.py ํŒŒ์ผ์—์„œ /pybo URL ๋งคํ•‘ ํ™•์ธ ํ›„ views.py ํŒŒ์ผ์˜ index ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ

3. ํ˜ธ์ถœ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅ

 

 

 

 

# URL ๋ถ„๋ฆฌ

: ์œ„์˜ ๋ฐฉ๋ฒ•๋งŒ์œผ๋กœ ๋๋‚ธ๋‹ค๋ฉด pybo์™€ ๊ด€๋ จ๋œ URL ๋งคํ•‘์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค config/urls.py ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•จ

+ config์˜ urls.py ํŒŒ์ผ์€ ์•ฑ์ด ์•„๋‹Œ ํ”„๋กœ์ ํŠธ ์„ฑ๊ฒฉ์˜ ํŒŒ์ผ์ด๋‹ˆ ์ด๊ณณ์—๋Š” ํ”„๋กœ์ ํŠธ ์„ฑ๊ฒฉ์˜ URL ๋งคํ•‘๋งŒ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•จ

 

1. ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์„ ์œ„ํ•ด config/urls.py ํŒŒ์ผ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •

pybo/ URL์— ๋Œ€ํ•œ ๋งคํ•‘์„ path('pybo/', views.index) -> path('pybo/',include('pybo.urls')) ๋กœ ์ˆ˜์ •

+ path('pybo/', include('pybo.urls')) ์€ pybo/ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ pybo/urls.py ํŒŒ์ผ์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์ฝ์–ด ์ฒ˜๋ฆฌํ•˜๋ผ๋Š” ์˜๋ฏธ์ž„. --> ์ด์ œ pybo/๋กœ ์‹œ์ž‘ํ•˜๋Š” URL์„ ์ถ”๊ฐ€ํ•  ๋•Œ, config/urls.py ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ํ•„์š”์—†์ด pybo/urls.py ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋จ

 

 

 

2. pybo/urls/py ํŒŒ์ผ์„ ์ƒ์„ฑ ํ›„ ํŒŒ์ผ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

+ config/urls.py ํŒŒ์ผ์—์„œ ์ด๋ฏธ pybo/๋กœ ์‹œ์ž‘ํ•˜๋Š” URL ์ด pybo/urls.py ํŒŒ์ผ๊ณผ ๋จผ์ € ๋งคํ•‘๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— pybo/ ๊ฐ€ ์ƒ๋žต๋œ " ์ด ์‚ฌ์šฉ๋˜์—ˆ์Œ.

 

 

 

3. ๋‹ค์‹œ http://localhost:8000/pybo ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜์—ฌ URL ๋ถ„๋ฆฌ ํ›„์—๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด์„ ํ™•์ธ

 

 

 

'โœ’๏ธ Python Programming > Frameworks' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

< django - 6 >  (0) 2022.07.30
< django - 5 >  (0) 2022.07.30
< django - 4 >  (0) 2022.07.29
< django - 2 >  (0) 2022.07.27
[Django] 1. ํŒŒ์ด์ฌ ๊ฐ€์ƒ ํ™˜๊ฒฝ & ์žฅ๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ค€๋น„  (0) 2022.07.27