【Python】Webフレームワーク「Bottle」のインストールから使い方を簡単に解説

目次から探す

Bottleフレームワークでのフォームの扱い

Webアプリケーションでは、ユーザーからの入力を受け取るためにフォームを使用することが一般的です

Bottleフレームワークでは、フォームデータの取得やバリデーションを簡単に行うことができます。

この章では、GETリクエストとPOSTリクエストでのフォームデータの取得方法と、フォームデータのバリデーションについて解説します。

GETリクエストでのフォームデータの取得

GETリクエストでフォームデータを取得する場合、URLのクエリパラメータにデータが含まれます。

Bottleフレームワークでは、requestオブジェクトのGET属性を使って、クエリパラメータを取得できます。

例えば、以下のようなフォームがあるとします。


<form action="/search" method="get">
  <input type="text" name="keyword">
  <input type="submit" value="検索">
</form>

このフォームから送信されたデータを取得するには、以下のようにrequest.GETを使います。


from bottle import route, request, run
@route('/search')
def search():
    keyword = request.GET.get('keyword', '').strip()
    return f'検索キーワード: {keyword}'
run(host='localhost', port=8080)

POSTリクエストでのフォームデータの取得

POSTリクエストでフォームデータを取得する場合、データはリクエストボディに含まれます。

Bottleフレームワークでは、requestオブジェクトのPOST属性を使って、リクエストボディのデータを取得できます。

例えば、以下のようなフォームがあるとします。


<form action="/login" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" value="ログイン">
</form>

このフォームから送信されたデータを取得するには、以下のようにrequest.POSTを使います。


from bottle import route, request, run
@route('/login', method='POST')
def login():
    username = request.POST.get('username', '').strip()
    password = request.POST.get('password', '').strip()
    return f'ユーザー名: {username}, パスワード: {password}'
run(host='localhost', port=8080)

フォームデータのバリデーション

フォームデータのバリデーションは、ユーザーからの入力が正しい形式であることを確認する重要なプロセスです。

バリデーションを行わないと、クロスサイトスクリプティング(XSS)などのセキュリティ攻撃を受けることになります。

Bottleフレームワークでは、バリデーションを行うための特別な機能は提供されていませんが、Pythonの標準機能やサードパーティのライブラリを使って簡単にバリデーションを実装できます。

例えば、以下のようにreモジュールを使ってメールアドレスのバリデーションを行うことができます。


import re
from bottle import route, request, run
def is_valid_email(email):
    pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
    return re.match(pattern, email) is not None
@route('/register', method='POST')
def register():
    email = request.POST.get('email', '').strip()
    if not is_valid_email(email):
        return '無効なメールアドレスです。'
    return f'登録されたメールアドレス: {email}'
run(host='localhost', port=8080)

このように、Bottleフレームワークを使ってフォームデータの取得やバリデーションを簡単に実装することができます。

これらの機能を活用して、ユーザーフレンドリーなWebアプリケーションを作成しましょう。

1 2 3 4 5

目次から探す