영원히 흘러가는 강

drf 405 error (Trailing slash) 본문

파이썬

drf 405 error (Trailing slash)

double_R_one_G 2024. 9. 23. 18:00
728x90

 

 path('<int:coupon_id>',ModifyCoupon.as_view()),

 

 

개인 프로젝트 진행중에 405 Method Not Allowed 에러가 발생!

 

우선 메소드가 잘못되었다니 프론트 - 백엔드간의 메소드부터 동일한테 체크해보았다

결과는 이상없음...

그리하여 검색을 해보니 슬래시의 유무에 따라 처리가 달라질수도 있으니 추가해보라고하여 아래와같이 끝에 /만 추가했더니

 

 path('<int:coupon_id/>',ModifyCoupon.as_view()),

 

오류가 사라졌네..?

무슨이유인지 검색해본 결과를 작성해본다. 

사실 나의 경우는 실수로 중복될만한 url을 작성했다..ㅎ


 

 

url 설정시에는 슬래시의 유무에 따라 서로 다른 주소가 된다고 한다.

ex)  /test 와 /test/  는 서로 다른 주소를 가리킨다.

 

슬래시가 없으면 파일   있다면 디렉토리 를 가리키는것으로 해석된다고 한다.

위처럼 맨 끝에 슬래시를 트레일링 슬래시 라고 하는데

django에서는 기본적으로 트레일링 슬래시가 없이 url요청이 온다면 해당 url이 있는지 체크후 

없다면 슬래시를 붙인 url로 다시 리디렉션하는 설정이 기본적으로 적용되어있다고 한다.

 


추가로 공식 홈페이지를 확인해보았는데

트레일링 슬래시를 사용하지 않아서 일관성을 유지할수도 있기에 개발자의 url 주소 패턴만 확실하다면 작성해도 상관없을듯하다.

트레일링 슬래시를 사용하지 않으려면 아래와 같이 설정하면 된다고한다.

router = SimpleRouter(trailing_slash=False)

 

 

간단한듯하지만 어려운 RESTful url 작성법이다...



참고
https://programmers-sosin.tistory.com/entry/Django-traling-slash-%EC%9E%A5%EA%B3%A0-%ED%8A%B8%EB%A0%88%EC%9D%BC%EB%A7%81-%EC%8A%AC%EB%9E%98%EC%8B%9C

 

Django traling slash / 장고 트레일링 슬래시

Django의 Trailing Slash [ 트레일링 슬래시 ] URL 끝에 있는 슬래시를 트레일링 슬래시 (trailing slash)라고 한다. 도메인 끝에 붙은 슬래시는 그 유무에 따른 차이가 없습니다. ex) tistory.com or tistory.com/ 하

programmers-sosin.tistory.com

https://www.django-rest-framework.org/api-guide/routers/#simplerouter

 

Routers - Django REST framework

 

www.django-rest-framework.org

 

 

 

728x90

'파이썬' 카테고리의 다른 글

모의고사  (0) 2021.08.27
문자열 내 마음대로 정렬하기  (0) 2021.08.25
숫자 문자열과 영단어  (0) 2021.08.24
정수 제곱근 판별  (0) 2021.08.23
로또의 최고 순위와 최저 순위  (0) 2021.08.20
Comments