본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[장고] URL 분리하기

by 열공노년 2024. 2. 23.
반응형

 

URL 분리하기

'pybo/urls.py'를 분리하기 전 'config/urls.py' 파일은 다음과 같습니다. 웹 브라우저에서 pybo 요청이 있으면 'pybo' 디렉터리 인덱스를 보여주라는 환경 설정입니다.

caption: 분리 전의 'config/urls.py'

 

분리하는 작업은 프로젝트의 짜임새를 갖추기 위함입니다. 방법은 include 함수를 이용해서 'pybo/' URL을 모듈화 해서 URL을 구분하는 것입니다. 방법은 'django.urls' 모듈을 이용해서 path 함수 외에 include 함수를 추가합니다. urlpatterns 리스트에서 두 번째 path 함수에 include('pybo.urls')를 임포트 하도록 수정합니다.

caption: config/urls.py 수정

 

'pybo/'로 시작하는 요청은 config/urls.py 파일이 아닌 pybo/urls.py 파일을 통해 처리하게 수정한 것입니다.

 

pybo/urls.py 생성

pybo 앱 디렉터리에 urls.py 파일을 생성합니다. 이 파일에서 장고 웹 프레임워크에서 URL 패턴을 정의하고 있습니다.파일의 내용은 다음과 같습니다.

caption: pybo/urls.py 생성

 

  1. from django.urls import path: path 함수를 django.urls 모듈로부터 임포트합니다. 이 함수는 URL과 뷰를 매핑하는 데 사용됩니다.
  2. from . import views: 현재 디렉터리의 views.py 파일로부터 뷰를 임포트합니다. 여기서 .는 현재 패키지를 나타냅니다.
  3. urlpatterns = [...]: urlpatterns 리스트는 URL 패턴과 뷰 함수를 연결합니다. 여기서 path 함수를 사용하여 특정 URL 패턴을 뷰와 매핑합니다.
  4. path('', views.index): path 함수를 사용하여 루트 URL '' (즉, 웹 사이트의 홈페이지)를 views.py 파일의 index 뷰 함수와 연결합니다. 사용자가 웹 애플리케이션의 홈페이지 (예: localhost:8000/pybo/)에 접속하면, index 뷰 함수가 호출됩니다.

caption: 'pybo/urls' and Browser

 

정리

장고가 브라우저의 요청에 따라 읽는 순서는 'config/urls.py', 'pybo/urls.py' 입니다. 파일 순서로 따라가며 URL 매핑을 찾아 브라우저 화면에 결과를 출력합니다.

반응형