Python 3 – PythonFlaskでファイルをアップロードする

ファイルのアップロードは、Webアプリの一般的なタスクです。 このチュートリアルでは、PythonFlaskを使用してこれを行う方法を学習します。 FlaskファイルでFlaskファイルにアップロードしたファイルをアップロードするのは非常に簡単です。

enctypeプロパティがに設定されているHTMLフォームが必要です "multipart/form-data" ファイルをURLに公開します。URLハンドラーはrequest.filesからファイルを抽出します。 [] オブジェクトを作成し、必要な場所に保存します。

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

ファイルをアップロードする

前書き

アップロードされた各ファイルは、最初にサーバー上の一時的な場所に保存され、次に実際には最終的な場所に保存されます。

ターゲットファイルの名前は、ハードコーディングするか、file]request.filesオブジェクトのfilenameプロパティから入手できます。 ただし、 secure_filename() 関数は、その安全なバージョンを取得するために使用されます。

デフォルトのアップロードフォルダパスとアップロードされたファイルの最大サイズは、Flaskオブジェクトの構成設定で定義できます。

アップロードフォルダへのパスを定義します

1
app.config['UPLOAD_FOLDER']

アップロードするファイルの最大サイズ(バイト単位)を指定します

1
app.config['MAX_CONTENT_PATH']

次のコードには、テンプレートフォルダに「upload.html」を表示する「/ upload」URLルールと、アップロードプロセスを処理するためにupload()関数を呼び出す「/ upload–file」URLルールがあります。

「upload.html」には、ファイル選択ボタンと送信ボタンがあります。

1
2
3
4
5
6
7
8
9
<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>

Pythonコード

ファイルを選択したら、[送信]をクリックします。 フォームのpostメソッドは「/ upload_file」URLを呼び出します。 基礎となる関数uploader()は保存操作を実行します。

これがFlaskアプリケーションのPythonコードです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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)

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

Hope this helps!

Source link