Django urls.py - path, re_path

2024. 1. 22. 23:32장고/Python Django

path의 Path converter

**기본 제공되는 Path Converter**
IntConverter - r"[0-9]+"
StringConverter - r"[^/]+"
UUIDConverter - r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
SlugConverter (StringConverter 상속) - r"[-a-zA-Z0-9_]+"
PathConverter (StringConverter 상속) - r".+"

re_path의 정규 표현식

**정규 표현식 패턴 예시**
1자리 숫자 - "[0123456789]" 혹은 "[0-9]" 혹은 r"[\\d]" 혹은 r"\\d"
2자리 숫자 - "[0123456789][0123456789]" 혹은 "[0-9][0-9]" 혹은 "\\d\\d"
3자리 숫자 - r"\\d\\d\\d" 혹은 r"\\d{3}"
2자리~4자리 숫자 - r"\\d{2,4}"
휴대폰 번호 - r"010[1-9]\\d{7}"
알파벳 소문자 1글자 -r "[abcdefghijklmnopqrstuvwxyz]" 혹은 "[a-z]"
알파벳 대문자 1글자 - r"[ABCDEFGHIJKLMNOPQRSTUVWXYZ]" 혹은 "[A-Z]"
한글이름 2글자 혹은 3글자 - r"[ㄱ-힣]{2,3}"
성이 "김"씨인 이름  - r"김[ㄱ-힣]{1,2}"
  • path는 우리가 일반적으로 알고있는 url 패턴이다!!
    • ex) path 의 정규 표현식
    # int형태의 정수만 오면 정상적으로 반환
    path('archives/<int:year>/', archives_year),
    
  • re_path는 Django 1.x 버전에서의 django.conf.urls.url() 사용과 동일 하다고 한다..
  • # path의 path('archives/<int:year>/', archives_year),과 같음 re_path(r'archives/(?P<year>\\d+)/', archives_year)
  • 근데 path에서와 달리 좀 더 미세하게 조정가능 하다고 한다.
  • 예를 들면 4자리 정수만 받게 하고싶다면 아래와 같이 해준다. re_path(r'archives/(?P<year>\\d{4})/', archives_year)
  • 2000년대의 연도만 받고싶다? 요런 식으로 한다. re_path(r'archives/(?P<year>20\\d{2})/', archives_year)

'장고 > Python Django' 카테고리의 다른 글

Serializer를 이용한 RESTAPI 구현  (1) 2024.01.13