Bottleフレームワークでのデータベース連携
Webアプリケーションでは、データの保存や管理が重要な要素です。
Bottleフレームワークでは、Pythonの標準ライブラリや外部ライブラリを利用して、データベースと連携することができます。
ここでは、SQLiteを使ったデータベース連携の方法と、他のデータベースシステムとの連携方法について解説します。
SQLiteを使ったデータベース連携
SQLiteは、軽量で使いやすいデータベースシステムです。
Pythonの標準ライブラリに含まれているため、追加のインストールが不要です。
データベースの作成
まずは、SQLiteを使ってデータベースを作成しましょう。
以下のコードは、sample.db
という名前のデータベースファイルを作成し、users
テーブルを作成する例です。
|-- sample.py
|-- sample.db
import sqlite3
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
conn.commit()
conn.close()
データベースへの接続
BottleフレームワークでSQLiteデータベースに接続するには、以下のように sqlite3.connect()
関数を使ってデータベースファイルに接続します。
import sqlite3
from bottle import route, run, template
@route('/users')
def users():
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute('SELECT * FROM users')
user_list = c.fetchall()
conn.close()
return template('users', users=user_list)
run(host='localhost', port=8080)
CRUD操作の実装
データベースとの連携では、CRUD(Create, Read, Update, Delete)操作が基本となります。
以下は、BottleフレームワークでCRUD操作を実装した例です。
# 省略: データベースへの接続
@route('/user/add', method='POST')
def add_user():
# 省略: ユーザー情報の追加処理
@route('/user/<user_id>')
def view_user(user_id):
# 省略: ユーザー情報の表示処理
@route('/user/update/<user_id>', method='POST')
def update_user(user_id):
# 省略: ユーザー情報の更新処理
@route('/user/delete/<user_id>', method='POST')
def delete_user(user_id):
# 省略: ユーザー情報の削除処理
他のデータベースシステムとの連携
Bottleフレームワークでは、他のデータベースシステム(MySQL, PostgreSQLなど)とも連携できます。
それぞれのデータベースシステムに対応したPythonライブラリをインストールし、上記のSQLiteの例と同様にデータベースへの接続やCRUD操作を実装します。
例えば、MySQLと連携する場合は、mysql-connector-python
ライブラリをインストールし、以下のようにデータベースに接続します。
import mysql.connector
config = {
'user': 'your_user',
'password': 'your_password',
'host': 'localhost',
'database': 'your_database'
}
conn = mysql.connector.connect(**config)
データベースシステムによっては、接続方法やSQL文の記述が異なる場合があるため、各データベースシステムのドキュメントを参照してください。