urlconf pattern - pai-plznw4me/django-initializer GitHub Wiki

UrlConf

1. κΈ°λ³Έ νŒ¨ν„΄

url κ³Ό view 을 μ—°κ²°ν•˜λŠ” κΈ°λŠ₯을 UrlConf κΈ°λŠ₯이라고 ν•œλ‹€.

  1. views.py μ•ˆμ— μžˆλŠ” function 을 μ—°κ²° ν•  수 μžˆλ‹€.
  2. html page 에 μžˆλŠ” html 을 μ—°κ²° ν•  수 μžˆλ‹€.
# ./project/urls.py
path('', TemplateView.as_view(template_name='home.html'), name='home'),

2. APP 별 독립적인 urlConf 관리 νŒ¨ν„΄

url confλŠ” app λ³„λ‘œ λ”°λ‘œ κ΄€λ¦¬λœλ‹€.

  • project level url 관리
  • app level url 관리
β”œβ”€β”€ db.sqlite3
β”œβ”€β”€ app
β”‚   └── urls.py <- app urlconf
β”œβ”€β”€ project
β”‚   β”œβ”€β”€ ...
β”‚   └── urls.py <- project urlconf
β”œβ”€β”€ manage.py

project level url μž‘μ„± 방법

  • app url 을 λ“±λ‘ν•œλ‹€.
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('file_manage_app.urls')),
]

app level url μž‘μ„± 방법

  • app name
  • urlpatterns 을 λ“±λ‘ν•œλ‹€
from django.contrib import admin
from django.urls import path, include

app_name = 'file_manage_app'
urlpatterns = [
    path('upload', upload, name='upload')
]

3. url 에 parameter 을 λ„£μ–΄μ„œ 인자 전달

### 1. urls.py
urlpatterns = [
    path('articles/<int:year>/', views.year_archive),
    path('articles/<int:year>/<int:month>/', views.month_archive),
]

2. views.py

def year_archive(request, int):
   ... 

3. html

<a href="{% url 'articles' year=2022 %}"></a>
⚠️ **GitHub.com Fallback** ⚠️