[파이썬][Django] URL 패턴 설정 방법과 예제
Django에서 URL 패턴을 설정하는 방법과 간단한 예제를 제공하겠습니다. URL 패턴을 설정하면 어떤 URL이 어떤 뷰 함수와 연결되는지 정의할 수 있습니다.
-
URL 패턴 설정 파일 생성:
Django 프로젝트 내에서 URL 패턴을 설정하기 위해 별도의 URL 설정 파일을 생성해야 합니다. 이 파일은 주로 각 앱 내에 생성됩니다.
- Django 앱 폴더 내에서
urls.py
파일을 생성합니다.
- Django 앱 폴더 내에서
-
URL 패턴 정의:
URL 패턴은
path()
또는re_path()
함수를 사용하여 정의할 수 있습니다.path()
함수는 간단한 URL 패턴을 정의할 때 사용하고,re_path()
함수는 정규 표현식을 사용하여 복잡한 패턴을 정의할 때 사용합니다.
from django.urls import path, re_path
from . import views # views.py 파일 import
urlpatterns = [
path('example/', views.example_view), # 간단한 URL 패턴
re_path(r'^articles/(?P<article_id>\d+)/$', views.article_detail), # 정규 표현식을 사용한 URL 패턴
]
위의 예제에서는 `/example/` 경로를 `example_view` 함수와 연결하고, `/articles/{article_id}/` 경로를 `article_detail` 함수와 연결합니다. `{article_id}` 부분은 정규 표현식 그룹으로 사용되며 `article_id`라는 매개변수로 뷰 함수로 전달됩니다.
-
뷰 함수 작성:
URL 패턴에 연결된 뷰 함수를 작성합니다. 이 함수는 요청을 처리하고 응답을 반환합니다.
from django.http import HttpResponse
def example_view(request):
return HttpResponse("This is an example view.")
def article_detail(request, article_id):
return HttpResponse(f"Viewing article with ID {article_id}.")
`example_view` 함수는 간단한 텍스트 응답을 반환하고, `article_detail` 함수는 요청에 포함된 `article_id`를 사용하여 특정 게시물을 보여줍니다.
-
프로젝트 루트 URL 설정:
앱 내의 URL 패턴을 정의한 후, 이러한 URL 패턴을 프로젝트 루트 URL 설정 파일에 포함해야 합니다.
from django.contrib import admin
from django.urls import path, include # include 추가
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')), # myapp 앱의 URL 패턴을 include
]
위의 예제에서 `include('myapp.urls')`를 사용하여 `myapp` 앱의 URL 패턴을 포함시켰습니다. 따라서 `/myapp/example/` 및 `/myapp/articles/{article_id}/`와 같은 URL이 루트 URL에서 처리됩니다.
이제 Django에서 URL 패턴을 설정하고 뷰 함수와 연결하는 방법을 이해하셨을 것입니다. URL 패턴을 효과적으로 활용하여 Django 애플리케이션의 다양한 기능을 정의할 수 있습니다.