[python] Flask-RESTful에서 폼 데이터를 처리하는 방법

Flask-RESTful은 Flask 프레임워크를 기반으로 한 RESTful API를 쉽게 개발할 수 있게 해주는 라이브러리입니다. 이 라이브러리를 이용하여 폼 데이터를 처리하는 방법을 알아보겠습니다.

1. Request Parsing 설정

Flask-RESTful에서 폼 데이터를 처리하기 위해서는 먼저 RequestParser를 설정해야 합니다. RequestParser는 클라이언트로부터 요청된 데이터를 파싱하여 사용할 수 있게 해줍니다.

from flask_restful import Resource, Api, reqparse

app = Flask(__name__)
api = Api(app)

parser = reqparse.RequestParser()
parser.add_argument('data', type=str, help='Data field is required')

위의 코드에서 RequestParser()를 사용하여 parser 객체를 생성하고, add_argument() 메서드를 사용하여 요청 파라미터를 정의합니다. 위의 예시에서는 “data”라는 이름의 문자열 타입의 필드를 요청 파라미터로 설정하였습니다.

2. POST 요청 처리

폼 데이터는 주로 POST 요청으로 전송되기 때문에, POST 메서드를 사용하여 데이터를 처리할 수 있습니다.

class FormDataResource(Resource):
    def post(self):
        args = parser.parse_args()
        data = args['data']
        # 데이터 처리 로직 작성
        return {'result': 'success', 'data': data}, 200

api.add_resource(FormDataResource, '/form-data')

위의 코드에서는 FormDataResource라는 리소스 클래스를 생성하여 POST 메서드를 처리합니다. parse_args() 메서드를 사용하여 요청 파라미터를 파싱하고, data 필드의 값을 가져옵니다. 가져온 데이터를 이용하여 필요한 로직을 처리한 뒤, 결과를 JSON 형태로 반환합니다.

3. 클라이언트에서 폼 데이터 전송하기

클라이언트에서는 POST 메서드를 사용하여 폼 데이터를 전송할 수 있습니다. 아래는 Python의 requests 라이브러리를 이용한 예시입니다.

import requests

url = 'http://localhost:5000/form-data'
data = {'data': 'example data'}

response = requests.post(url, data=data)
print(response.json())

위의 코드에서는 requests.post() 메서드를 이용하여 POST 요청을 보냅니다. data 매개변수에 전송할 데이터를 딕셔너리 형태로 설정합니다. 전송된 데이터를 받아온 결과를 출력합니다.

위의 방법을 따라 Flask-RESTful에서 폼 데이터를 처리하는 방법을 알아보았습니다. 이를 기반으로 원하는 로직을 추가하여 API를 개발할 수 있습니다.

참고: Flask-RESTful 공식 문서