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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바