inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

URL 정규표현식 질문입니다!

346

ajdsasld

작성한 질문수 37

0

from django.urls import path, re_path, register_converter
from . import views


# 커스텀 Converter
class YearConverter:
regex = r"20\d{2}" # 정규표현식 패턴을 작성

def to_python(self, value):
return int(value)

def to_url(self, value):
return "%04d" % value


# 커스텀 Converter를 등록하고 이름을 설정
register_converter(YearConverter, 'year')

app_name = 'instagram'

urlpatterns = [
path('', views.post_list, name='post_list'),
# path('<int:pk>/', views.post_detail),
re_path(r'(?P<pk>\d{3})/', views.post_detail),
# path('archives/<int:year>/', views.archives_year),
# re_path(r'archives/(?P<year>20\d{2})/', views.archives_year),
path('archives/<year:year>/', views.archives_year),
# re_path(r'(?P<pk>\d+)/$', views.post_detail),
]

안녕하세요, 강사님!

위와 같이 instagram 앱 내부의 urls.py에서 

re_path(r'(?P<pk>\d{3})/', views.post_detail), 

이렇게 re_path함수를 사용하여 localhost:8000/instagram/이후에 3자리만 요청이 가능하도록 해보고 싶은데요.

이렇게 1자리 또는 2자리를 입력하면 정상적으로 오류가 나오는데, 

다음과 같이 3자리만 매칭되는 게 아니라, 3자리 이상은 전부 매칭이 되고 있어서 질문을 드려봅니다. 어떤 부분이 문제가 있는걸까요..?

 

 

 

 

 

 

 

 

 

docker python react django

답변 1

1

이진석

안녕하세요.

re_path를 쓰실 때에는 정규표현식에서 문자열의 시작과 끝을 명시해주셔야 합니다.

re_path(r'(?P<pk>^\d{3})/$', views.post_detail),

이를 지정하지 않으시면, 부분매칭이 됩니다. 숫자 4자리도 결국 숫자 3자리가 포함된 것이니까 매칭이 된 것입니다.

화이팅입니다. :-)

0

ajdsasld

시작과 끝이 있다는 걸 몰랐네요ㅎㅎ 항상 자세히 알려주셔서 감사합니다:)

안녕하세요.

0

44

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

267

1

useEffect 훅에서 else 유무에 따른 결과

0

207

1

useAxios 훅의 dependency array 설정

0

241

1

useEffect에서 변수 업데이트 관련 질문

0

378

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

262

1

bootstrap4

0

464

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

357

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

568

3

useState는 필수일까요?

0

256

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

589

4

Django allauth를 사용한 소셜 로그인 시 에러

0

648

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

548

2

useLocalStorage() 함수 사용여부

0

223

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

443

1

리듀서의 의미 재확인

0

423

1

simple-jwt Refresh Token 사용 노하우

0

894

2

docker compose 를 통한 배포 관련 오류 문의

0

664

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

357

1

is_like_user

0

227

1

related_name 오류

0

267

1

re_path 오류

0

252

1

re_path url

0

243

1

No post matches the given query

0

653

2