Queryparam

장현웅·2023년 9월 3일
0

Queryparam


클라이언트는 HTTP 요청을 할 때 특정 정보를 검색하거나 정렬하기 위해 url에 객체형태의 값을 넣어 보낸다.

  • 예시)

Queryparam이란?

queryparam은 웹 주소(URL)에 정보를 전달하기 위한 일반적인 방법 중 하나로 URL의 끝에 물음표(?)를 붙이고 그 뒤에 키-값 쌍을 포함하는 문자열을 추가하여 전달된다. 여러개의 queryparameter를 사용할 때는 '&'로 구분된다.

다음과 같이

http://127.0.0.1:8000/index?my=나의&name=이름은&is=알렉스

이 요청을 분석해보면 다음과 같다.

request			value
---------------------------------------------
index			이 url 경로(path)에서
?my=나의	  	my라는 key의 value가 '나의'인 정보
&name=이름은		그리고 name이라는 key의 value가 '이름은'인 정보
&is=알렉스		그리고 is라는 key의 value가 '알렉스'인 정보

요청 url에서 parameter 객체를 가져오는 방법은 클라이언트가 url을 요청할 때 서버에서 생성한 HttpRequest 클래스의 객체인 Request 객체에 HTTP GET 메소드와 '''get() 함수'''를 사용하여 가져온다.

request.GET['key'] : 'key'에 대한 값('value')를 반환
request.GET.get() : 'key'가 존재하지 않을 때의 값을 설정할 수 있음.
def index(request) :
	print(request.GET["my"])		# 나의
	print(request.GET["name"]		# 이름은
	print(request.GET.get("is"))	# 장현웅
    print(request.GET.get("알렉스"))	# None
	print(request.GET)				# <QueryDict: {'my': ['나의'], 'name': ['이름은'], 'is': ['알렉스']}>
    
    return HttpResponse(<h1> Index <h1> <p>안녕하세요/p>')

터미널의 모습은 이렇다.

이것을 페이지에 띄울 수도 있다. 가져온 값들을 변수에 저장하고 fstring으로 변수 값을 출력하는 응답을 HttpResponse 객체에 담아 보내주면 된다.

def index(request) :
    my = request.GET["my"]	
    name = request.GET.get("name")
    is_ = request.GET["is"]
    
    return HttpResponse(f'<h1> Index <h1> <p>하하! {my} {name} {is_} 입니다.</p>')

0개의 댓글