[python] Flask-RESTful을 활용한 파일 업로드 기능 구현하기

Flask-RESTful은 Flask 프레임워크를 기반으로 한 RESTful API를 간편하게 구현할 수 있게 도와주는 라이브러리입니다. 이번 예제에서는 Flask-RESTful을 사용하여 파일 업로드 기능을 구현하는 방법에 대해 알아보겠습니다.

필수 패키지 설치

먼저 Flask-RESTful을 설치해야 합니다. 아래 명령을 사용하여 패키지를 설치합니다.

pip install flask-restful

파일 업로드 API 구현하기

from flask import Flask, request
from flask_restful import Api, Resource

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

class FileUpload(Resource):
    def post(self):
        file = request.files['file']
        if file:
            file.save('uploads/' + file.filename)
            return {'message': '파일 업로드가 완료되었습니다.'}, 201
        else:
            return {'error': '파일을 찾을 수 없습니다.'}, 400

api.add_resource(FileUpload, '/upload')

if __name__ == '__main__':
    app.run(debug=True)

위의 코드는 Flask-RESTful을 사용하여 파일 업로드 기능을 구현한 예제입니다. POST 요청을 받으면 file이라는 이름으로 전달된 파일을 저장하고, 파일이 성공적으로 업로드되었을 경우에는 {'message': '파일 업로드가 완료되었습니다.'}와 상태 코드 201을 반환합니다. 파일이 없을 경우에는 {'error': '파일을 찾을 수 없습니다.'}와 상태 코드 400을 반환합니다.

테스트

위의 예제 코드를 실행한 후, POSTMAN과 같은 API 테스트 도구를 사용하여 파일을 업로드해보세요. http://localhost:5000/upload에 POST 요청을 보내면 파일이 성공적으로 업로드되는지 확인할 수 있습니다.

결론

이번 예제에서는 Flask-RESTful을 활용하여 파일 업로드 기능을 구현하는 방법에 대해 알아보았습니다. Flask-RESTful은 간편한 구현 방식과 다양한 기능을 제공하여 RESTful API 개발을 용이하게 해줍니다. 파일 업로드와 같은 기능을 구현할 때에도 Flask-RESTful을 활용하면 효율적으로 개발할 수 있습니다.

참고: Flask-RESTful 공식 문서