Flask에서 요청받은 데이터 다루기
개요
Flask 웹 프레임워크를 사용할 때, 클라이언트로부터 전송되는 데이터를 어떻게 서버에서 처리할 수 있는지 알아봅니다.
GET 방식으로 데이터 받기
GET 요청은 주로 웹 브라우저의 주소창을 통해 서버에 데이터를 전송합니다. Flask에서는 request.args
를 이용해 이러한 데이터를 다룰 수 있습니다. 예를 들어, 주소가 http://example.com?name=John&age=30
이라면 다음과 같이 코드를 작성할 수 있습니다.
1
2
3
4
5
6
7
8
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello():
name = request.args.get('name')
age = request.args.get('age')
return f'Hello, {name}. You are {age} years old.'
POST 방식으로 데이터 받기
POST 요청은 데이터를 HTTP 메시지 본문에 담아 전송합니다. 이 경우에는 request.form
을 이용합니다.
1
2
3
4
5
6
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
# 로그인 처리 로직
return 'Login Successful'
JSON 형식으로 데이터 받기
클라이언트가 JSON 형식으로 데이터를 보낼 경우 request.json
을 사용할 수 있습니다.
1
2
3
4
5
6
@app.route('/api', methods=['POST'])
def api():
data = request.json
name = data['name']
age = data['age']
return f'Received name: {name}, age: {age}'
파일 업로드 다루기
request.files
을 이용하면 사용자가 업로드한 파일을 처리할 수 있습니다.
1
2
3
4
5
@app.route('/upload', methods=['POST'])
def upload_file():
uploaded_file = request.files['file']
uploaded_file.save('/path/to/save')
return 'File uploaded successfully'
오류 상황
만약 필요한 데이터가 없거나 잘못된 형식으로 데이터가 전송되었다면, 서버에서는 BadRequest
라는 이름의 오류가 발생할 수 있습니다.
정리
Flask에서는 다양한 방법으로 클라이언트로부터 데이터를 받을 수 있습니다. 이 데이터는 request
객체의 여러 속성을 통해 접근할 수 있으며, 상황에 따라 적절한 속성을 선택하여 사용하면 됩니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.