파이썬/장고 웹서비스 개발 완벽 가이드 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에 정규표현식 적용이 가능
]