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