ํธ๋ ์ผ๋ง ์ฌ๋์๋? โ
1.ํธ๋ ์ผ๋ง ์ฌ๋์ ์ ์
URL ์ ๋์ ์ค๋ ์ฌ๋์(`/`)๋ฅผ ์๋ฏธํ๋ฉฐ, Django ์์ URL ์ ์ค๊ณํ ๋ ์ค์ํ ์ญํ ์ ํ๋ค
- URL ์ด `/` ๋ก ๋๋๋ฉด ํธ๋ ์ผ๋ง ์ฌ๋์๊ฐ ์๋ค๊ณ ํ๋ค
- ์: `https://example.com/about/`
- URL ์ด `/` ๋ก ๋๋์ง ์์ผ๋ฉด ํธ๋ ์ผ๋ง ์ฌ๋์๊ฐ ์๋ค๊ณ ํ๋ค
- ์: `https://example.com/about`
2. Django ์ ๊ธฐ๋ณธ ๋์
Django ๋ ํธ๋ ์ผ๋ง ์ฌ๋์๊ฐ ์๋ URL ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค
- `APPEND_SLASH=True`(๊ธฐ๋ณธ๊ฐ): ํธ๋ ์ผ๋ง ์ฌ๋์๊ฐ ์๋ ์์ฒญ์ด ์ค๋ฉด Django ๊ฐ ์๋์ผ๋ก ์ฌ๋์๋ฅผ ์ถ๊ฐํ์ฌ ๋ฆฌ๋ค์ด๋ ํธํ๋ค
์์
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('about/', views.about, name='about'),
]
- ํด๋ผ์ด์ธํธ๊ฐ `/about` ์ผ๋ก ์์ฒญํจ:
- Django ๋ `/about/` ๋ก ๋ฆฌ๋ค์ด๋ ํธํจ
- ๋ทฐ ํจ์๋ฅผ ์คํํจ
- ํด๋ผ์ด์ธํธ๊ฐ `/about/` ์ผ๋ก ์์ฒญ:
- ๋ฐ๋ก ๋ทฐ ํจ์ ์คํ
3. APPEND_SLASH ์ค์
`settings.py` ์์ `APPEND_SLASH` ์ค์ ์ผ๋ก ์ด ๋์์ ๋ณ๊ฒฝํ ์ ์์
๊ธฐ๋ณธ๊ฐ: True
- ์ฌ๋์๊ฐ ์๋ URL ๋ก ์์ฒญ ์, ์๋์ผ๋ก ์ฌ๋์๋ฅผ ์ถ๊ฐํด ๋ฆฌ๋ค์ด๋ ํธ ํ๋ค
์์
APPEND_SLASH = True
- `/about` ์์ฒญ >> `/about/` ๋ก ๋ฆฌ๋ค์ด๋ ํธ
์ค์ : False
- Django ๊ฐ ์ฌ๋์๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ์ง ์์
- URL ์ ๋ช ํํ ์ค๊ณํด์ผ ํ๋ค
์์
APPEND_SLASH = False
- `/about` ์์ฒญ >> 404 ์๋ฌ
- `/about/` ์์ฒญ์๋ง ๋งค์นญํด์ค
4. ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ์๋ตํ๋ ๊ฒฝ์ฐ
RESTful API ์ค๊ณ ์, ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ์๋ตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค
- ์ด ๊ฒฝ์ฐ, Django ์ `APPEND_SLASH=False` ๋ก ์ค์ ํ๊ฑฐ๋, DRF(Django Rest Framework) ์์ ์ด๋ฅผ ๊ด๋ฆฌํ๋ค
์์ : RESTful API
from django.urls import path
from . import views
urlpatterns = [
path('api/resource', views.resource, name='resource'), # ์ฌ๋์ ์์
]
5. ์ฃผ์ ์ฌํญ
- SEO: ์ฌ๋์๊ฐ ์๋ URL ๊ณผ ์๋ URL ์ ์๋ก ๋ค๋ฅธ ๋ฆฌ์์ค๋ก ๊ฐ์ฃผ๋ ์ ์์
- ์ผ๊ด๋ ์ค๊ณ๊ฐ ์ค์ํ๋ค
- ๋ฆฌ๋ค์ด๋ ํธ ๋น์ฉ: `APPEND_SLASH=True` ์ธ ๊ฒฝ์ฐ, ์ฌ๋์ ์ถ๊ฐ๋ฅผ ์ํด ์ถ๊ฐ์ ์ธ HTTP ์์ฒญ์ด ๋ฐ์ํ๋ค
- ์ธ๋ถ API ์์ ํธํ์ฑ: API ์ค๊ณ ์ ํธ๋ ์ผ๋ง ์ฌ๋์๊ฐ ์๋์ง ์๋์ง ๋ช ํํ ๊ฒฐ์ ํด์ผ ํ๋ค
6.Best Practice
- ์น ์ ํ๋ฆฌ์ผ์ด์
: ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์(Django ๊ธฐ๋ณธ ๋์)
- ์: `/about/`, `/contact/`
- API ์ค๊ณ: ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ์๋ตํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค
- ์: `/api/resource`
์ผ๊ด์ฑ ์ ์ง
- ๋ชจ๋ URL ์์ ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์๋ตํ๋ ๋ฐฉ์ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์ ์งํ๋ ๊ฒ์ด ์ค์ํจ
์ค๋ ๋๋ ์ :
๊ฐ์์์ ๊ณ์ ์ธ๊ธํ๋๊ฑฐ ๋ณด๋ ์ค์ํ๊ตฌ๋~
์ผ๊ด๋ ์ค๊ณ๊ฐ ์ฐ์ฐ ์ค์ํ๊ตฌ๋~
'[๋ด๋ฐฐ์บ ] ๋ณธ ์บ ํ (24.11.25 ~ 25.03.31) ๐๐ปโโ๏ธ > Django ๐ชข' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250106] HTML ํผ(Form), ์ฟผ๋ฆฌ์คํธ๋ง(Query String), ๊ทธ๋ฆฌ๊ณ Get (0) | 2025.01.06 |
---|---|
[250103] Django Template Language ๋? (1) | 2025.01.04 |
[241231] Classํ View์ ํจ์ํ View์ ์ฐจ์ด์ (0) | 2024.12.31 |
[241230] MVC ํจํด๊ณผ MTV ํจํด (2) | 2024.12.30 |