์ด์ url์ app๋ง๋ค ๊ฐ๊ฐ ๊ด๋ฆฌํ๊ณ ์ด๋ฅผ ํ๋ก์ ํธ ํด๋์ urls.py์์ includeํด์ ์ฌ์ฉํ ๊ฒ๋๋ค.
๐กapp๋ง๋ค urls.py๋ฅผ ๊ด๋ฆฌํ๋ ์ด์ ?
ํ๋ก์ ํธ urls.py์ ๋ชจ๋ path๋ฅผ ์ ๋๋ค๋ฉด ํ์ด์ง๊ฐ ๋์ด๋ ์๋ก path์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ต์ต๋๋ค.
- app(main)์ urls.py ํ์ผ ์์ฑํ๊ธฐ
- app์ urls.py์ path๋ฅผ ์ ์ด์ฃผ๊ธฐ
โฉโฉโฉ from django.urls import path from .views import *
app_name = "main"
from django.urls import path
from .views import *
urlpatterns = [
path('', showmain, name="showmain"),
path('first/', first, name="first"),
path('second/', second, name="second"),
path('<str:id>', detail, name="detail"),
path('new/', new, name="new"),
path('create/', create, name="create"),
path('posts/', posts, name="posts"),
path('edit/<str:id>', edit, name="edit"),
path('update/<str:id>', update, name="update"),
path('delete/<str:id>', delete, name="delete"),
]
- basic/urls.py์์ main app์ urls.py์ ์ ์ด์ค path๋ฅผ ์ง์์ฃผ๊ณ includeํด์ฃผ๊ธฐ
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')),
]
- app_name ์ค์ ํด์ฃผ๊ธฐ
from django.urls import path
from .views import *
app_name = "main"
urlpatterns = [
path('', showmain, name="showmain"),
path('first/', first, name="first"),
path('second/', second, name="second"),
path('<str:id>', detail, name="detail"),
path('new/', new, name="new"),
path('create/', create, name="create"),
path('posts/', posts, name="posts"),
path('edit/<str:id>', edit, name="edit"),
path('update/<str:id>', update, name="update"),
path('delete/<str:id>', delete, name="delete"),
]
- template์ url๋ถ๋ถ ์์ ํด์ฃผ๊ธฐ
<a href="{% url 'main:first' %}">first</a>
<a href="{% url 'main:second' %}">second</a>
์ฑ ์ด๋ฆ:url ์ด๋ฆ
ํํ๋ก ๋ฐ๊พธ์ด์ค์ผํฉ๋๋ค.
๐กapp_name์ ์ค์ ํ๋ ์ด์ ?
์ฌ๋ฌ ์ฑ์์ ๋์ผํ ์ด๋ฆ์ url์ ์ฌ์ฉํ๊ฒ๋ ๊ฒฝ์ฐ app_name์ ์ค์ ํด์ฃผ์ง ์์ผ๋ฉด ์ํ๋ url๋ก ์ด๋ํ์ง ์์ ์ ์์ต๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ๋ main
์ showmain
์ด๋ผ๋ url์ด ์์ต๋๋ค. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ profile
์ด๋ผ๋ ์๋ก์ด app์ ๋ง๋ค์๊ณ , ๊ทธ ์ฑ์ ๋ฉ์ธ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด showmain
์ด๋ผ๋ ์ด๋ฆ์ url์ ๋ง๋ค ์ ์๊ฒ ์ฃ .
# profile/urls.py (์์)
from django.urls import path
from .views import *
urlpatterns = [
path('', showmain, name="showmain"),
]
์ด๋ ๊ฒ ๋ ๊ฒฝ์ฐ main์ฑ์ ๋ฉ์ธ๊ณผ profile์ฑ์ ๋ฉ์ธ์ ๋ณด์ฌ์ฃผ๋ ๋งํฌ๋ฅผ ๋ง๋ ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
<a href="{% url 'showmain' %}">main์ฑ์ ๋ฉ์ธํ๋ฉด</a>
<a href="{% url 'showmain' %}">profile์ฑ์ ๋ฉ์ธํ๋ฉด</a>
๋ณด๋ค์ํผ ๊ตฌ๋ถ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. django ๋ํ ๊ตฌ๋ถํ ์ ์์ด ๋ ์ค ์ด๋ showmain url๋ก ์ด๋ํ ์ง ํ์คํ ์ ์ ์์ต๋๋ค.
๊ฐ๊ฐ app_name์ main
๊ณผ profile
๋ก ์ค์ ํด์ฃผ์๋ค๋ฉด
<a href="{% url 'main:showmain' %}">main์ฑ์ ๋ฉ์ธํ๋ฉด</a>
<a href="{% url 'profile:showmain' %}">profile์ฑ์ ๋ฉ์ธํ๋ฉด</a>
์์ ๊ฐ์ด ๋๊ณ ์ฐ๋ฆฌ๊ฐ ์ํ๋ url๋ก ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.