Django에서 urlpatterns (엔드포인트) 목록을 나열하는 방법
Django에서 urlpatterns (엔드포인트) 목록을 나열하는 방법
이 문서에서는 Django에서 urlpatterns
를 나열하는 방법에 대한 자세한 설명을 제공합니다.
urlpatterns 변수
urlpatterns
는 Django 프로젝트의 settings.py
모듈에 일반적으로 정의된 Python 리스트입니다. 각 요소는 URLPattern
개체이며 특정 URL 패턴과 해당 패턴을 처리하는 뷰 함수를 매핑합니다.
from django.urls import path, include
urlpatterns = [
path('articles/', include('articles.urls')),
path('admin/', admin.site.urls),
]
위 코드에서:
path('articles/', include('articles.urls'))
은articles
앱의 URL 패턴을 포함합니다.articles.urls
는articles
앱의urls.py
모듈에 정의됩니다.path('admin/', admin.site.urls)
는 Django 관리 사이트에 대한 URL 패턴을 정의합니다.
URLPattern 개체
URLPattern
개체는 두 가지 주요 속성을 가지고 있습니다:
regex
: URL 패턴을 나타내는 정규 표현식입니다.view
: URL 패턴과 일치하는 요청을 처리하는 뷰 함수입니다.
from django.urls import path
urlpatterns = [
path('articles/<int:pk>/', article_detail, name='article_detail'),
]
path('articles/<int:pk>/', article_detail, name='article_detail')
은/articles/<int:pk>/
URL 패턴과 일치하는 요청을 처리하는article_detail
뷰 함수를 매핑합니다.<int:pk>
는 URL 패턴에서pk
라는 이름의 정수 파라미터를 허용합니다. 이 파라미터는 뷰 함수에 전달됩니다.name='article_detail'
은 URL 이름을 정의합니다. URL 이름은 URL 역참조를 위해 사용됩니다.
django-views 및 django-urls
django-views
및 django-urls
는 Django URL 패턴을 정의하는 데 도움이 되는 유용한 패키지입니다.
django-views
는 일반적인 URL 패턴을 정의하는 데 사용되는 함수를 제공합니다. 예를 들어,GenericView
클래스는 Create, Read, Update 및 Delete(CRUD) 작업을 위한 일반적인 URL 패턴을 정의하는 데 사용할 수 있습니다.django-urls
는 URL 패턴을 정의하는 데 더 유연한 방법을 제공합니다.path()
함수는 기본 URL 패턴을 정의하는 데 사용되며,re_path()
함수는 정규 표현식을 사용하여 더 복잡한 URL 패턴을 정의하는 데 사용될 수 있습니다.
예시
from django.urls import path, include
from articles.views import article_list, article_detail
urlpatterns = [
path('articles/', article_list, name='article_list'),
path('articles/<int:pk>/', article_detail, name='article_detail'),
]
이 코드는 두 개의 URL 패턴을 정의합니다:
/articles/
는article_list
뷰 함수를 호출하며 모든 기사 목록을 표시합니다./articles/<int:pk>/
는article_detail
뷰 함수를 호출하며 특정 ID를 가진 기사를 표시합니다.
Django에서 urlpatterns (엔드포인트) 목록을 나열하는 방법: 예제 코드
from django.urls import path, include
from articles.views import article_list, article_detail
urlpatterns = [
path('articles/', article_list, name='article_list'),
path('articles/<int:pk>/', article_detail, name='article_detail'),
]
코드 설명
path('articles/', article_list, name='article_list'),
path('articles/<int:pk>/', article_detail, name='article_detail'),
추가 예제
- 특정 URL 이름으로 URL 패턴 참조:
from django.urls import path, reverse
def my_view(request):
# ...
urlpatterns = [
path('my-url/', my_view, name='my-url-name'),
]
# 다른 곳에서 URL 역참조
url = reverse('my-url-name')
- URL 패턴에 네임스페이스 사용:
from django.urls import path, include
urlpatterns = [
path('articles/', include('articles.urls', namespace='articles')),
]
django-views
사용:
from django.urls import path, include
from articles.views import ArticleListView, ArticleDetailView
urlpatterns = [
path('articles/', ArticleListView.as_view(), name='article_list'),
path('articles/<int:pk>/', ArticleDetailView.as_view(), name='article_detail'),
]
Django에서 urlpatterns (엔드포인트) 목록을 나열하는 방법: 대체 방법
include() 함수 사용
include()
함수를 사용하여 다른 URL 패턴 모듈을 가져올 수 있습니다. 이는 여러 앱에서 URL 패턴을 관리할 때 유용합니다.
from django.urls import path, include
urlpatterns = [
path('articles/', include('articles.urls')),
path('admin/', admin.site.urls),
]
함수 기반 뷰 사용
django-rest-framework
과 같은 라이브러리를 사용하면 함수 기반 뷰를 사용하여 URL 패턴을 정의할 수 있습니다.
from django.urls import path
from articles.views import article_list, article_detail
urlpatterns = [
path('articles/', article_list, name='article_list'),
path('articles/<int:pk>/', article_detail, name='article_detail'),
]
article_list
및article_detail
함수는 함수 기반 뷰입니다.- 함수 기반 뷰는 URL 패턴과 연결되고 요청을 처리하는 데 사용됩니다.
GenericView
클래스와 같은 클래스 기반 뷰를 사용하여 URL 패턴을 정의할 수도 있습니다.
from django.urls import path
from articles.views import ArticleListView, ArticleDetailView
urlpatterns = [
path('articles/', ArticleListView.as_view(), name='article_list'),
path('articles/<int:pk>/', ArticleDetailView.as_view(), name='article_detail'),
]
ArticleListView
및ArticleDetailView
클래스는 클래스 기반 뷰입니다.
django-urls 패키지 사용
from django.urls import path, re_path
from articles.views import article_list, article_detail
urlpatterns = [
path('articles/', article_list, name='article_list'),
re_path(r'^articles/(?P<pk>\d+)/$', article_detail, name='article_detail'),
]
re_path()
함수는 정규 표현식을 사용하여 URL 패턴을 정의합니다.(?P<pk>\d+)
그룹은 URL 패턴에서pk
라는 이름의 정수 파라미터를 허용합니다.
타사 라이브러리 사용
rest_framework
과 같은 타사 라이브러리를 사용하여 URL 패턴을 정의할 수도 있습니다. 이러한 라이브러리는 종종 API 엔드포인트를 정의하는 데 도움이 되는 추가 기능을 제공합니다.
django django-views django-urls