Flaskでフォーム処理をマスターする方法

この記事では、PythonのWebフレームワークであるFlaskを用いてフォーム処理を行う方法について解説します。具体的なコード例、その詳細解説、そして応用例を2つ以上含めています。

目次

Flaskとは

Flaskは、PythonのWebフレームワークの一つです。シンプルで学習コストが低いため、Webアプリケーション開発の初心者にも非常に人気があります。

Flaskの特徴

– シンプルな構造である
– 拡張性が高い
– WSGI(Web Server Gateway Interface)をサポートしている

Flaskでのフォーム処理の基本

Flaskでフォーム処理を行う基本的なステップは以下の通りです。

  • HTMLでフォームを作成
  • Flaskでルーティングを設定
  • POSTデータを処理

HTMLでのフォーム作成

以下はHTMLでの基本的なフォームのコードです。

<form action="/submit" method="post">
  <input type="text" name="username" />
  <input type="submit" value="送信">
</form>

Flaskでのルーティング設定

次に、このフォームにデータを送信するためのFlask側のルーティングを設定します。

from flask import Flask, request

app = Flask(__name__)

@app.route('/submit', methods=['POST'])
def submit():
    username = request.form['username']
    return f'Hello, {username}'

POSTデータの処理

上記コードの`request.form[‘username’]`が、POSTされたデータを取得する部分です。このようにして取得したデータは、後続の処理で使用できます。

応用例1: 入力値のバリデーション

一般的なWebアプリケーションでは、ユーザーからの入力値に対するバリデーション(妥当性検証)が必要です。

from flask import Flask, request, redirect, url_for

app = Flask(__name__)

@app.route('/submit', methods=['POST'])
def submit():
    username = request.form['username']
    if not username:
        return redirect(url_for('index'))
    return f'Hello, {username}'

解説

この例では、`username`が空であるかどうかをチェックしています。空であれば、`index`ページにリダイレクトします。

応用例2: ファイルのアップロード

Flaskを使用して、ファイルをアップロードする例を見てみましょう。

from flask import Flask, request, redirect, url_for

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    uploaded_file = request.files['file']
    if uploaded_file.filename != '':
        uploaded_file.save(uploaded_file.filename)
    return redirect(url_for('index'))

解説

この例では、`request.files[‘file’]`でアップロードされたファイルを取得しています。その後、`save`メソッドでファイルをサーバー上に保存しています。

まとめ

Flaskでのフォーム処理は非常に簡単で、多くの応用例が考えられます。この記事で紹介した基本的な手法と応用例を参考に、自分自身のプロジェクトに応用してみてください。

コメント

コメントする

目次