[python] Flask-WTF를 사용하여 파일 업로드 기능을 구현하는 방법은 어떻게 되나요?
  1. Flask-WTF를 설치합니다.

     $ pip install flask-wtf
    
  2. Flask-WTF의 FileField를 사용하여 파일 업로드를 할 수 있는 폼을 생성합니다.

     from flask_wtf import FlaskForm
     from wtforms import FileField, SubmitField
    
     class UploadForm(FlaskForm):
         file = FileField('파일 선택')
         submit = SubmitField('업로드')
    
  3. 파일 업로드를 처리할 라우트 함수를 작성합니다. 이때, render_template 함수를 사용하여 업로드 폼을 보여줍니다.

     from flask import Flask, render_template, request
     from werkzeug.utils import secure_filename
    
     app = Flask(__name__)
    
    
     @app.route('/', methods=['GET', 'POST'])
     def upload_file():
         form = UploadForm()
         if form.validate_on_submit():
             # 업로드된 파일을 가져옵니다.
             file = form.file.data
             # 파일의 이름을 안전하게 만듭니다.
             filename = secure_filename(file.filename)
             # 파일을 저장합니다.
             file.save(filename)
             return '파일이 업로드 되었습니다!'
         return render_template('upload.html', form=form)
    
    
     if __name__ == '__main__':
         app.run()
    
  4. 업로드된 파일을 저장할 디렉토리를 생성합니다.

     $ mkdir uploads
    
  5. 업로드된 파일을 저장할 경로를 설정합니다. app.config를 사용하여 설정할 수 있습니다.

     app.config['UPLOAD_FOLDER'] = 'uploads'
    

이제 파일 업로드 기능이 구현되었습니다. 업로드된 파일은 uploads 디렉토리에 저장됩니다. Flask-WTF는 업로드된 파일의 유효성을 자동으로 검사하고, 필요한 경우 오류 메시지를 표시합니다.

더 자세한 내용은 아래의 링크를 참고하시기 바랍니다.