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アプリケーションの開発に挑戦してみてください。.