장고

장고 URL 설정하기

URL 패턴이란?

장고에서 URL 패턴은 웹 애플리케이션의 URL 경로와 그 경로에 대응하는 뷰(View)를 연결하는 역할을 합니다. 각 URL 패턴은 특정 뷰 함수와 매핑되어, 사용자가 요청한 URL을 처리할 수 있게 합니다. 예를 들어, urls.py 파일에 path('blog/', views.blog_list)처럼 URL 경로와 해당 뷰를 연결할 수 있습니다. URL 패턴은 장고의 URL 디스패처가 요청을 처리하는 데 필수적인 요소입니다.

기본 URL 설정

장고 프로젝트에서 URL 설정은 mysite/urls.py 파일에 정의됩니다. 기본적으로 이 파일은 프로젝트의 루트 URL을 처리하며, 앱별 URL 설정을 포함할 수 있습니다. urlpatterns 리스트에 각 URL 경로와 그에 해당하는 뷰를 연결합니다. 예를 들어, path('admin/', admin.site.urls)는 관리 페이지로 가는 URL을 설정하는 코드입니다. 프로젝트의 기본 URL 설정을 통해 각 앱의 URL을 불러올 수 있습니다.

앱별 URL 설정

장고 앱에서 각 앱의 URL을 별도로 관리하려면, 앱 내부에 urls.py 파일을 만들어 관리할 수 있습니다. 예를 들어, blog라는 앱을 만들었다면, blog/urls.py 파일을 만들어 urlpatterns에 앱 내에서 사용할 URL 경로를 추가합니다. 그런 다음 프로젝트의 urls.py에서 include('blog.urls')를 사용하여 앱의 URL 설정을 불러옵니다. 이를 통해 각 앱의 URL을 독립적으로 관리할 수 있습니다.

URL 경로와 뷰 연결하기

URL 패턴은 특정 뷰 함수와 연결되어야 합니다. 뷰는 views.py 파일에 정의된 함수나 클래스입니다. 예를 들어, blog_list라는 뷰가 있을 경우, path('blog/', views.blog_list)로 URL과 뷰를 연결합니다. 뷰는 사용자 요청을 처리하고 응답을 반환하는 역할을 합니다. 뷰가 반환하는 응답은 HTML 페이지일 수도 있고, JSON 형식일 수도 있습니다. URL과 뷰가 연결되면 사용자는 지정된 URL에 접근하여 적절한 응답을 받을 수 있습니다.

URL 매개변수 사용하기

장고에서 URL 경로에 매개변수를 포함시킬 수 있습니다. 예를 들어, path('post/<int:id>/', views.post_detail)와 같이 URL에 동적 매개변수를 추가하여 사용자가 요청한 특정 데이터를 처리할 수 있습니다. <int:id> 부분은 정수형 매개변수 id를 받아 post_detail 뷰에서 이를 처리할 수 있습니다. 이를 통해 상세 페이지, 필터링 등 다양한 동적 URL을 구현할 수 있습니다.