데이터 분석 기술 블로그

Django에 대하여(7)_Django URLs 본문

백엔드

Django에 대하여(7)_Django URLs

데이터분석가 이채은 2024. 3. 28. 19:09

요청과 응답에서 Django URLs의 역할

URL dispatcher(운항 관리자, 분배기)란, URL 패턴을 정의하고 해당 패턴이 일치하는 요청을 처리할 view 함수를 연결(매핑)하는 것입니다.

앞서 설명드린 URL 관리의 문제점은 템플릿의 많은 부분이 중복되고, URL의 일부만 변경되는 상황이라면 계속해서 비슷한 URL과 템플릿을 작성해야 하는 것입니다.

URL 관리의 문제점

1. Variable Routing

Variable Routing이란, URL일부에 변수를 포함시키는 것으로 변수는 view 함수의 인자로 전달할 수 있습니다.

variable routing 작성법

위에서 int, str과 같은 URL 변수의 타입을 Path converters라고 하고 5가지 타입을 지원합니다.

#urls.py

urlpatterns = [
    path('hello/<str:name>/', views.greeting),
]
# views.py

def greeting(request, name):
    context = {
        'name': name,
    }
return render(request, 'articles/greeting.html', context)
<!-- articles/greeting.html -->

{% extends 'base.html' &}

{% block content &}
  <h1>Greeting</h1>
  <h3>{{ name }}님 안녕하세요 !</h3>
{% endblock content &}

#urls.py

urlpatterns = [
    path('hello/<int:num>/', views.detail),
]
# views.py

def detail(request, num):
    context = {
        'num': num,
    }
return render(request, 'articles/detail.html', context)
<!-- articles/detail.html -->

{% extends 'base.html' &}

{% block content &}
  <h1>Detail</h1>
  <h3>{{ num }}번 글 입니다.</h3>
{% endblock content &}

 

참고

1. 템플릿 기본 경로 외 커스텀 경로 추가하기

추가 템플릿 경로 지정 1
추가 템플릿 경로 지정 2

2. BASE_DIR

settings에서 경로 지정을 편하게 하기 위해 최상단 지점을 지정해놓은 변수

3. DTL 주의사항

  • Python처럼 일부 프로그래밍 구조(if, for 등)를 사용할 수 있지만 명칭을 그렇게 설계했을 뿐이지 Python 코드로 실행되는 것이 아니며 Python과는 관련 없다.
  • 프로그래밍적으로 로직이 아니라 프레젠테이션을 위한 것임을 명시해야 한다.
  • 프로그래밍적 로직은 되도록 view 함수에서 작성 및 처리해야 한다.
  • 공식문서를 참고해 다양한 태그와 필터를 사용해봐야 한다. https://docs.djangoproject.com/en/4.2/ref/templates/builtins/

'백엔드' 카테고리의 다른 글

Django에 대하여(9)_Model  (0) 2024.03.30
Django에 대하여(8)_App과 URL  (0) 2024.03.29
Django에 대하여(6)_form 활용  (0) 2024.03.27
Django에 대하여(5)_요청과 응답  (0) 2024.03.26
Django에 대하여(4)_Django Template  (0) 2024.03.25