URLconf 란?

URLconf는 Django에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합입니다.

URL : 웹페이지 주소를 의미합니다.
인터넷의 모든 페이지는 고유한 URL 을 가지고 있어야 합니다. 
애플리케이션은 사용자가 URL을 입력하면 어떤 내용을 보여줘야 하는지 알고 있습니다.

Django 에서 URL 은 어떻게 작동할까?

demo_project/urls.py

"""demo_project URL Configuration

[...]
"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

Django는  admin/  로 시작하는 모든 URL을 view 와 대조해 찾아냅니다.

수없이 많은 URL이 admin URL 에 포함될 수 있어 일일이 모두 쓸 수 없기 때문에 정규표현식을 사용합니다.

나의 첫 번째 Django url

첫 번째 URL 을 만들어 봅시다! 'http://localhost:8000/polls' 주소를 설문조사 홈페이지로 지정하고 여기에 문자열을 보여줄 겁니다.

먼저 /polls URL 에 해당하는 뷰 부분을 작성합니다. 

polls/views.py

from django.http import HttpResponse

def index(request):
  return HttpResponse("Hello, world. You're at the polls index.")

polls 애플리케이션에서 메인 demo_project/urls.py 파일로 url 들을 가져올 겁니다.

먼저 polls.urls 를 가져오는 행을 추가합니다. polls.urls 를 가져오려면, include 함수가 필요합니다.

from django.urls 행을 찾아 import 뒤에 include 함수를 추가합니다.

demo_project/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', include('admin.urls')),
]

이제 Django는 http://localhost:8000/polls 로 들어오는 모든 접속 요청을 polls.urls 로 전송해 추가 명령을 찾을 겁니다.

polls.urls

polls/urls.py

from django.urls import path
from . import views

여기서 Django 함수인 path와 polls 애플리케이션에서 사용할 모든 views 를 가져왔습니다.

그 다음, 첫 번째 URL 패턴을 추가합니다.

urlpatterns = [
    path('', views.index, name='polls_main')
]

이제 index 라는 view 가 루트 URL에 할당되었습니다.

이 URL 패턴은 빈 문자열에 매칭되며, Django URL 확인자(resolver)는 전체 URL 경로에서 접두어(prefix)에 포함되는 도메인 이름(http://localhost:8000/)을 무시하고 받아들입니다.

이 패턴은 Django 에게 누군가 웹사이트에 'http://localhost:8000/polls' 주소로 들어왔을 때 index 를 보여주라고 말해줍니다.

마지막 부분인 name='polls_main' 는 URL에 이름을 붙은 것으로 뷰를 식별합니다. 이는 뷰의 이름과 같을 수도 다를 수도 있습니다.

 

'라이브러리 & 프레임워크 > Django' 카테고리의 다른 글

데이터베이스 설치  (0) 2022.11.07
Django 개발 환경 설정  (0) 2022.11.07
복사했습니다!