URLconf - URL 정의

2022. 11. 7. 17:07·라이브러리 & 프레임워크/Django

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
'라이브러리 & 프레임워크/Django' 카테고리의 다른 글
  • 데이터베이스 설치
  • Django 개발 환경 설정
rondeveloper
rondeveloper
  • rondeveloper
    Ron's learning record
    rondeveloper
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • k8s (1)
      • AWS (1)
      • 리눅스 (3)
      • Docker (8)
      • 라이브러리 & 프레임워크 (14)
        • React (2)
        • NestJS (8)
        • Spring (0)
        • Django (3)
        • FastAPI (1)
      • 웹 (2)
        • Nginx (1)
      • 프로그래밍 언어 (29)
        • HTML (0)
        • CSS (0)
        • JavaScript (21)
        • Python (3)
        • Node.js (0)
        • TypeScript (4)
        • Java (1)
      • Today I learned (9)
      • 알고리즘 (9)
        • 백준 (0)
        • 프로그래머스 (8)
        • 개념 (1)
      • 티끌모아 태산 (5)
        • 하루에 영단어 하나씩 (5)
        • 독서 (0)
      • 시행착오 (3)
      • 데이터베이스 (2)
        • MySQL (0)
      • 컴퓨터 과학 (8)
        • 네트워크 (2)
        • 운영체제 (0)
        • 데이터베이스 (2)
        • 자료구조 (4)
      • 포트폴리오 (4)
        • JJINCAFE IN SEOUL (4)
        • CODEUNICORN (0)
      • 회고 (0)
      • CICD (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    typescript
    코딩테스트
    컨테이너
    리눅스
    네트워크
    스택
    Python
    배열
    Kubectl
    FastAPI
    javascript
    django
    mysql
    redis
    모듈
    IP 주소
    도커
    조인
    프로그래머스
    Docker
    쿠버네티스
    Til
    nestjs
    생활코딩
    iterable
    자바스크립트
    기초
    Kubernetes
    레벨2
    typeorm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
rondeveloper
URLconf - URL 정의
상단으로

티스토리툴바