파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의를 듣고 정리한 글입니다.
프로젝트/settings.py에서 최상위 URLConf 모듈을 지정path('<int:pk>/', views.post_detail),1자리 숫자 → [0123456789] or [0-9] or r"[\d]" or r"\d"
2자리 숫자 → [0123456789][0123456789] or [0-9][0-9] or \d\d
3자리 숫자 → r"\d\d\d" or r"\d{3}"
2자리~4자리 숫자 → r"\d{2,4}"
휴대폰 번호 → r"010[1-9]\d{7}"
알파벳 소문자 1글자 → [abcdefghijklmnopqrstuvwxyz] or [a-z]
알파벳 대문자 1글자 → [ABCDEFGHIJKLMNOPQRSTUVWXYZ] or [A-Z]
r"\d" : 별도 횟수 지정이 없음. 1회 반복
r"\d{1}": 1회 반복
r"\d{2}": 1회 반복
r"\d{2,4}": 2회~4회 반복
r"\d?": 0회 혹은 1회 반복
r"\d*": 0회 이상 반복
r"\d+": 1회 이상 반복
2000년대 이상만 매칭되도록 설정. URL 캡쳐 문자를 보다 타이트하게 적용 가능.
class YearConverter:
regex = r'20\d{2}'
def to_python(self, value):
# URL로부터 추출한 문자열을 뷰에 넘겨주기 전에 변환한다.
return int(value)
def to_url(self, value):
# url reverse시에 호출된다.
return str(value)
register_converter(YearConverter, 'year')
urlpatterns = [
path('archives/<year:year>/', views.archives_year),
re_path(r'archives/(?P<year>20\d{2})/', views.archives_year),
# 위와 같이 직접 URL에 정규표현식 적용이 가능
]