A. parse_qsl을 이용한다.
직접 구현할 수도 있지만 사람들이 많이 쓰는 라이브러리가 있다면 그냥 쓰는 게 좋다. 많이 쓰는 라이버리르는 예외처리가 잘 되어 있으니까.
POST 방식으로 request.body 값을 가져오면 urlencoded된 'key1=value1&key2=value2' 형태다. 키로 값을 가져올 수 있게 딕셔너리로 바꾸면 사용하기 편해진다.
parse_qsl을 활용하는 법
from urllib.parse import parse_qsl
data = "name=ted&age=40"
data_dict = dict(parse_qsl(data))
data_dict
결과
{'name': 'ted', 'age': '40'}
parse_qs 활용하는 법
from urllib.parse import parse_qs
data = "name=ted&age=40"
data_dict = parse_qs(data)
data_dict
결과
{'name': ['ted'], 'age': ['40']}
값이 1개더라도 [ ] 리스트 형태로 나와서 별로다.
직접 구현
data = "name=ted&age=40"
data_list = data.split("&") if '&' in data else None
data_dict = dict([(item.split("=")[0], item.split("=")[1]) for item in data_list]) if data_list is not None else {}
data_dict
결과
{'name': 'ted', 'age': '40'}
직접 구현할 경우에는 예외처리를 신경써야 한다. 입력값이 "" 없는 경우 등 다양한 경우를 고려해야 한다.