티스토리 뷰

728x90
반응형

localhost:8000/question/1

 

이렇게 생긴 URL을 만들고 싶다면

urlpattern을 아래처럼 추가하고 (참고로 앱이름 question입니다)

 

 

APIView를 아래와 같이 작성하면 된다. 

 

 

 

만약 쿼리스트링을 받고 싶다면 어떻게 해야할까?!?! 

 

https://en.wikipedia.org/wiki/Query_string

 

그러니까 이런 url을 제공하고 싶은 것이다!!

 

localhost:8000/family_question/answer?question_id=1 

 

 

url패턴은 기존처럼 유지하고 (참고로 스샷의 앱이름 family_question입니다)

 

 

APIView에서 

request.GET[''키값'] 으로 쿼리스트링의 value를 꺼내오면 된다. 

 

 

잘됨 ☺️

 

 

 

[추가]

 

그리고 저는 특정 쿼리스트링이 있는지를 명시적으로 확인하고 없으면 더 이상 진행안하고 에러보내주도록 처리했는데요, 

request.Get.get['question_id'] 로 쿼리스트링이 없으면 None (파이썬의 널값)을 리턴하도록 할 수 도 있답니다.

(참고: velog.io/@meekukin/TIL-django  / https://stackoverflow.com/questions/51618819/what-does-request-get-getpage-1-means-here)

 

 

 

 

 

Reference

velog.io/@swhybein/django-queryurl-파라미터

 

django - query/url 파라미터

 장고 기능으로 HTTP request안에 request.GET 그리고 request.POST 객체로 쿼리 딕셔너리를 가질 수 있습니다. views.py  뷰 클래스에 위와 같이 설정하고 파라미터 키:밸류 값으로category : 4, query : -pricehttp

velog.io

 

반응형
댓글