웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > python

Python 서버로 전달된 Content-Type 값들 request로 전달받는 방법 정리

Last Modified : 2020-10-23 / Created : 2019-07-31
4,189
View Count
클라이언트 브라우저에서 Python 서버로 값들을 전송할 수 있습니다. 이때 여러 타입의 값들을 Python에서 전달 받는 방법을 알아봅니다.




# Python 서버에서 여러 값들 전달 받는 방법

전달 받는 값의 타입은 json, urlencoded, 파일(file) 등등 여러가지가 있겠습니다. 각각의 타입들을 서버에서 받기 위해서는 대부분 request 모듈을 사용합니다. 이때 모듈의 내부 함수는 조금씩 다른데요 하나씩 알아봅니다.


! 먼저 GET 방식인 경우

get 방식인 경우 주소 파라미터(query parameter, 쿼리 스트링)로 전달됩니다.
request.args.get(key)

예를들어 아래와 같은 주소로 전달된 경우라면?
webisfree.com?sitename=webisfree&no=123

request.args.get('sitename') // sitename 값을 가져올 경우
request.args.get('no') // no 값 가져오기, 접근하기


@ 여러 개의 값인 경우 배열로 받기
하나가 아닌 여러 개의 값으로 파라미터를 전달 받을 수 있습니다. 이 경우 getlist()를 사용합니다.
webisfree.com?name=webisfree&name=mysite

request.args.getlist('name[]')

// result
[0] => 'webisfree'
[1] => 'mysite'

여기까지 get을 사용한 방법이며 아래는 get 이 외의 메소드로 전달 받는 경우입니다.


! GET 이 외의 타입 전달 받기

다음은 GET 이 외의 타입인 경우입니다. 대부분 아래와 같은 타입이죠
- json
- urlencoded
- file

@ urlencoded type
request.form.get(key)


@ json type
request.get_json()
json으로 가져온 값은 딕셔너리(dictionary) 타입으로 저장됩니다. 만약 json으로 전달된 값의 key가 sitename이라면 아래와 같은 방법으로 확인합니다.
request.get_json()['sitename']

참고로 get_json()은 다음의 값들이 설정 가능합니다.

silent // 파싱 에러 무시
force // mimetype 타입의 파싱 에러 무시
cache // 값 캐시 사용

get_json(silent=True)
위와 같이 boolean 값으로 설정하여 사용합니다.


@ file type
이번에는 파일인 경우입니다. 파일인 경우 request.files[key]를 사용하여 접근할 수 있습니다.
request.files['file']

여기까지 Python에서 request 모듈을 사용하여 서버로 전달 된 값에 접근, 전달 받는 방법을 알아보았습니다.

Previous

Python flask에서 디버깅(debug), 중단점(breakpoint) 사용 방법

Previous

Python range() 함수, 반복문 및 배열 만들기