inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

유저 페이지 구현

urlpatterns 질문

220

준영

작성한 질문수 11

0

아래처럼 urlpatterns를 작성하면 될 것 같은데 re_path를 사용하시는 이유가 무엇인가요?

path('post/<str:username>/', views.user_page, name='user_page'),

장고 react django python docker

답변 1

0

이진석

안녕하세요.

User 모델의 username 필드는 기본 validators가 지정되어있고, 기본 validators를 통해 [\w.@+-]+ 패턴이 강제되고 있습니다. 모든 username은 [\w.@+-]+ 패턴으로 저장이 되는 것이죠.

물론 말씀하신 대로 path converter인 str을 통해 러프하게 문자열 패턴을 지정하실 수도 있습니다. str의 정규표현식은 [^/]+ 입니다.

러프하게 지정하실 경우, username! 과 같은 실제 유저명으로 저장될 수 없는 URL로 요청이 들어와도 user_page 뷰 함수가 호출이 되게 됩니다. 물론 DB에 쿼리했을 때 DoesNotExist 예외가 발생하기에 유저 입장에서는 정상처리가 됩니다.

하지만 패턴을 [\w.@+-]+  로 지정하신다면, 유저명 패턴에 맞지 않는 요청은 뷰 함수 호출 전에 걸러져서, 서버에 불필요한 부하를 전달되는 것을 막을 수 있습니다. 유저명 패턴에 맞는 요청만 DB에 쿼리가 되는 거죠.

그리고 user_page 뷰에 대한 URL Reverse 시에 유저명 패턴에 맞지 않는 값이 전달되었을 때에도, 에러를 발생시킬 수 있기 때문에, 보다 엄격하게 URL 관리를 해줄 수 있게 됩니다.

안녕하세요.

0

51

1

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

0

275

1

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

0

211

1

useAxios 훅의 dependency array 설정

0

245

1

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

0

382

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

268

1

bootstrap4

0

471

4

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

1

365

1

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

0

574

3

useState는 필수일까요?

0

263

1

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

0

600

4

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

0

655

1

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

0

556

2

useLocalStorage() 함수 사용여부

0

229

1

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

0

449

1

리듀서의 의미 재확인

0

430

1

simple-jwt Refresh Token 사용 노하우

0

899

2

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

0

673

1

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

0

365

1

is_like_user

0

233

1

related_name 오류

0

275

1

re_path 오류

0

259

1

re_path url

0

251

1

No post matches the given query

0

661

2