PythonのWebフレームワークであるFlaskを使用して、フォームデータを扱う方法について解説します。

Flaskでのフォームデータの取得

Flaskでは、requestオブジェクトのform属性を使用して、フォームデータを取得することができます。以下にその例を示します。

from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    data = request.form['input_name']  # pass the form field name as key

このコードでは、input_nameという名前のフォームフィールドからデータを取得しています。

Flaskでのmultipart/form-dataの扱い

Flaskでは、multipart/form-dataによるファイルアップロードも可能です。以下にその例を示します。

from flask import Flask, request, make_response, jsonify
import os
import werkzeug
from datetime import datetime

app = Flask(__name__)

# limit upload file size : 1MB
app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

UPLOAD_DIR = os.getenv("UPLOAD_DIR_PATH")

@app.route('/data/upload', methods=['POST'])
def upload_multipart():
    if 'uploadFile' not in request.files:
        make_response(jsonify({'result':'uploadFile is required.'}))
    file = request.files['uploadFile']
    fileName = file.filename
    if '' == fileName:
        make_response(jsonify({'result':'filename must not empty.'}))

    saveFileName = datetime.now().strftime("%Y%m%d_%H%M%S_") + werkzeug.utils.secure_filename(fileName)
    file.save(os.path.join(UPLOAD_DIR, saveFileName))
    return make_response(jsonify({'result':'upload OK.'}))

@app.errorhandler(werkzeug.exceptions.RequestEntityTooLarge)
def handle_over_max_file_size(error):
    print("werkzeug.exceptions.RequestEntityTooLarge")
    return 'result : file size is overed.'

このコードでは、uploadFileという名前のファイルをアップロードすることができます。また、アップロードされたファイルのサイズが1MBを超える場合はエラーを返します。

以上が、Python Flaskでフォームデータを扱う基本的な方法です。これらの知識を活用して、より高度なWebアプリケーションの開発に挑戦してみてください。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です