Flask – 파일 업로드
Flask에서 파일 업로드를 처리하는 것은 매우 쉽습니다. URL에 파일을 게시하는 'multipart / form-data'로 설정된 enctype 속성이있는 HTML 양식이 필요합니다. URL 처리기는 다음에서 파일을 가져옵니다.request.files[] 개체를 만들고 원하는 위치에 저장합니다.
업로드 된 각 파일은 실제로 최종 위치에 저장되기 전에 먼저 서버의 임시 위치에 저장됩니다. 대상 파일의 이름은 하드 코딩되거나 다음의 파일 이름 속성에서 얻을 수 있습니다.request.files[file]목적. 그러나 다음을 사용하여 보안 버전을 얻는 것이 좋습니다.secure_filename() 함수.
Flask 개체의 구성 설정에서 기본 업로드 폴더의 경로와 업로드 된 파일의 최대 크기를 정의 할 수 있습니다.
app.config [ 'UPLOAD_FOLDER'] | 업로드 폴더의 경로를 정의합니다. |
app.config [ 'MAX_CONTENT_PATH'] | 업로드 할 파일의 최대 크기 (바이트)를 지정합니다. |
다음 코드는 ‘/upload’ 표시되는 URL 규칙 ‘upload.html’ 템플릿 폴더에서 ‘/upload-file’ 호출하는 URL 규칙 uploader() 업로드 프로세스를 처리하는 기능.
‘upload.html’ 파일 선택기 버튼과 제출 버튼이 있습니다.
<html>
<body>
<form action = "http://localhost:5000/uploader" method = "POST"
enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type = "submit"/>
</form>
</body>
</html>
아래와 같은 화면이 나타납니다.
딸깍 하는 소리 Submit파일을 선택한 후. Form의 post 메소드는‘/upload_file’URL. 기본 기능uploader() 저장 작업을 수행합니다.
다음은 Flask 애플리케이션의 Python 코드입니다.
from flask import Flask, render_template, request
from werkzeug import secure_filename
app = Flask(__name__)
@app.route('/upload')
def upload_file():
return render_template('upload.html')
@app.route('/uploader', methods = ['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
f.save(secure_filename(f.filename))
return 'file uploaded successfully'
if __name__ == '__main__':
app.run(debug = True)