[python] Flask에서 파일 업로드 기능 구현하기
Flask는 간단하고 가벼운 웹 프레임워크로서 파일 업로드와 관련된 기능을 쉽게 구현할 수 있습니다. 이번 포스트에서는 Flask를 이용하여 파일 업로드 기능을 구현하는 방법에 대해 알아보겠습니다.
필수 패키지 설치
먼저 Flask 프로젝트에 파일 업로드 기능을 추가하기 위해 flask
및 flask-Uploads
패키지를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install flask flask-uploads
파일 업로드 라우트 생성
파일 업로드를 처리할 라우트를 생성합니다. 이를 위해 Flask 앱에서 Flask-Uploads
패키지를 import 하고, 업로드를 처리할 라우트를 작성합니다.
from flask import Flask, render_template, request
from flask_uploads import UploadSet, configure_uploads, IMAGES, UploadNotAllowed
app = Flask(__name__)
photos = UploadSet('photos', IMAGES)
app.config['UPLOADED_PHOTOS_DEST'] = 'uploads'
configure_uploads(app, photos)
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST' and 'photo' in request.files:
try:
filename = photos.save(request.files['photo'])
return f'File uploaded successfully as {filename}'
except UploadNotAllowed:
return 'Allowed image types are -> png, jpg, jpeg, gif'
return render_template('upload.html')
HTML 폼 생성
이제 파일을 업로드할 수 있는 HTML 폼을 생성합니다. 아래는 파일 업로드 폼을 제공하는 upload.html
파일의 내용입니다.
<!DOCTYPE html>
<html>
<body>
<h2>파일 업로드</h2>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="photo">
<input type="submit" value="업로드">
</form>
</body>
</html>
위와 같이 파이썬 Flask를 활용하여 파일 업로드 기능을 구현할 수 있습니다. 간단한 몇 줄의 코드로 사용자로 하여금 파일을 업로드할 수 있는 기능을 제공할 수 있습니다. 물론, 실제 프로젝트에서는 보안과 예외처리에 대한 고려가 필요하지만, 기본 동작 방식에 대한 이해는 도움이 될 것입니다.
참고 자료
이상으로 파일 업로드 기능을 구현하기 위한 Flask 애플리케이션에 대해 알아보았습니다. 해당 기능을 활용하여 다양한 프로젝트에서 파일 관리 기능을 추가할 수 있을 것입니다.