Django 프로젝트 시작 시 나타나는 기본 생성 파일 중 settings.py, 웹의 기본 설정 파일에 대해 지난 포스팅에서 알아보았다. 이번 포스팅에서는 기본 생성 파일의 두 번째. urls.py에 대해 알아보려 한다.
1. urls.py의 역할
사실 urls.py는 settings.py와 달리 내용이 많지 않다. 하지만 Django로 동작하는 웹 서버로 HTTTPS 요청, 즉 사용자가 웹 페이지를 접속하려는 시도가 있다면, 가장 먼저 반응하는 부분이 이 URL 부분이기 때문에 중요성이 꽤 높은 파일이다(사실 Django 파일 중 불필요한 파일은 거의 없지만...).
settings.py가 기본 웹 설정 파일이라면, urls.py는 웹 서버의 URL 구성과 관련된 파일이다. 예를 들어, python의 공식 사이트인 python.org만 보더라도, python.org/about, python.org/download 등 여러 하위 URL이 존재하는데, 이 하위(/about, /download 등) 사이트에 대한 정의를 urls.py에서 진행한다고 생각하면 된다.
그럼, urls.py 파일에 하위 URL 경로만 지정해주면 끝일까? 그렇지는 않다. URL 경로 외에도 추가로 작성해야 할 내용이 있는데, 이 부분은 먼저 urls.py의 내용을 보면서 Django의 웹 페이지가 어떻게 화면에 나타나는지 과정을 알아야 한다.
2. Django의 웹 페이지 호출 방식
아주 간략한 구조로 구성된 Django 서버가 있다는 가정 아래, Django의 웹 호출 방식에 대해 설명하려 한다.
우선 Django의 웹 페이지가 화면에 표시되기 위해 필요한 부분은 크게 2가지다. 웹 페이지를 불러올 주소인 URL 정보, URL이 호출될 경우, 해당 URL이 참조할 파일, 즉 template이다.
Django 서버가 정의한 URL로 사용자가 페이지 호출 요청이 오면, Django는 urls.py 파일을 참조하여 해당 URL의 정보를 먼저 얻는다. 해당 URL 정보가 나타내어야 할 template이 urls.py에 정의되어 있기 때문에, Django는 urls.py에 명시된 template 파일을 열어 해당 내용을 확인한다.
지난 포스팅에서 접속했던 /admin 역시, urls.py에 기본으로 정의되어 있는 URL이다. 정의된 내용을 보면, "/admin/"으로 URL이 호출될 경우, django.contrib.admin.site의 urls 반환값을 반환하게 된다. 이 urls 반환값으로 인해 화면에 우리가 보는 관리자 로그인 페이지가 나타나게 되는 것이다.
3. python 파일을 이용하여 URL 화면 수정
이제 직접 urls.py 파일을 수정하여 기본 페이지에 초록색 로켓이 날아가는 Default 화면이 아닌 다른 화면을 출력할 수 있도록 수정해보려 한다. 이 화면을 위한 templates 파일의 이름은 test.py로 지정할 것이고, 이 test.py는 manage.py와 동일한 경로에 templates라는 폴더를 만든 뒤, 이 폴더 내에 test.py를 저장할 것이다.
이 test.py은 python 코드로 간단하게 화면에 글자를 출력할 수 있도록 아래와 같이 코드를 작성한다.
해당 코드는 웹 페이지 호출 요청(request)이 있는 경우, "기본 페이지 변경 테스트"라는 텍스트를 화면에 출력하는 내용이다. test.py를 위와 같이 수정하고 urls.py 설정파일로 이동하자.
4. urls.py 파일에 URL 및 test.py 파일 Mapping
웹 페이지에 표시하려는 templates 파일, 즉 test.py는 Root폴더/templates 아래에 위치하고 있다.
따라서 from ... import 문으로 해당 test 파일을 urls.py에 import 한다.
이제, 우리가 수정하려는 URL 기본 경로와 template 파일을 path 함수로 정의해준다. path 함수는 python 파일을 templates로 이용할 경우, URL과 templates 파일의 화면 호출 함수(위의 예제에서는 def index)가 인자로 들어간다.
따라서 아래와 같이 코딩을 진행해준다.
urls.py 파일을 저장한 뒤, runserver 명령어로 서버를 실행하고 기본 페이지로 접속하면, 우리가 보아왔던 초록로켓은 사라지고, test.py 파일에 입력했던 텍스트 문구가 화면에 출력됨을 확인할 수 있다.
이번 포스팅에서는 Django 프로젝트 생성 시 나타나는 기본 파일 중 하나인 urls.py에 대해 알아보았다. 정리하자면, urls.py는 웹으로 제공되는 하위 URL 주소 정의 및 해당 주소가 나타내어야 할 페이지에 대해 정의하는 파일이라 생각하면 된다.
urls.py의 역할을 설명하기 위해 python 파일을 이용한 간략한 형태로만 화면 변경을 시연했는데, Python 파일 뿐만 아니라 html 파일도 urls.py에 등록하여 사용할 수 있다. 다만 html 파일 등록 방법이 조금 복잡하기 때문에 이번 포스팅에서 다루지는 않았다. html 파일을 이용한 화면 구성은 바로 이어질 포스팅에서 확인할 수 있다.
Fin.
'WebFramework > Python Django' 카테고리의 다른 글
[Python Django] 6. Django의 기본 파일 살펴보기 - models.py (1) (0) | 2023.08.11 |
---|---|
[Python Django] 5. Django의 기본 파일 살펴보기 - urls.py(2) (0) | 2021.07.24 |
[Python Django] 4. Django의 기본 파일 살펴보기 - views.py(1) (0) | 2021.06.27 |
[Python Django] 2. Django의 기본 파일 살펴보기 - settings.py (0) | 2021.06.19 |
[Python Django] 1. Django 설치, 개발 환경 구성 및 기본 설정/구동 (0) | 2021.06.16 |
댓글