この記事では、Python用の軽量ORM(Object Relational Mapping)ライブラリであるPeeweeを使ったデータベース操作の基本について解説します。具体的なコード例とその解説、さらには応用例を2つ含めています。
目次
Peeweeとは
PeeweeはPythonプログラムからSQLデータベースと簡単にインタラクションするための軽量ORMライブラリです。Peeweeはシンプルで扱いやすいAPIを提供し、複雑なSQLクエリをPythonのオブジェクトとメソッドで簡単に操作できます。
Peeweeのインストール
Peeweeはpipコマンドで簡単にインストールできます。
# Peeweeのインストール
pip install peewee
データベースとテーブルの作成
データベース接続
データベースに接続するには、以下のようなPythonコードを書きます。
from peewee import SqliteDatabase
# SQLiteデータベースに接続
db = SqliteDatabase('my_database.db')
テーブルの定義
テーブルを定義するには、Peeweeの`Model`クラスを継承します。各フィールドはクラス変数として定義されます。
from peewee import Model, CharField
# Modelクラスを継承してテーブルを定義
class User(Model):
username = CharField()
email = CharField()
# データベース接続情報
class Meta:
database = db
テーブルの作成
テーブルを物理的に作成するには、`create_table`メソッドを使用します。
# テーブルの作成
User.create_table()
基本的なCRUD操作
データの挿入(Create)
新しいレコードを挿入するには、`create`メソッドを使用します。
# レコードの挿入
User.create(username='john', email='john@example.com')
データの読み取り(Read)
データを読み取るには、`select`メソッドと`where`メソッドを使用します。
# レコードの読み取り
user = User.select().where(User.username == 'john').get()
print(user.email)
データの更新(Update)
データを更新するには、`update`メソッドを使用します。
# レコードの更新
User.update(email='john.doe@example.com').where(User.username == 'john').execute()
データの削除(Delete)
データを削除するには、`delete`メソッドを使用します。
# レコードの削除
User.delete().where(User.username == 'john').execute()
応用例
一括挿入
`insert_many`メソッドを使って、複数のレコードを一括で挿入することができます。
# 一括挿入
data = [{'username': 'alice', 'email': 'alice@example.com'},
{'username': 'bob', 'email': 'bob@example.com'}]
User.insert_many(data).execute()
集計とフィルタリング
`select`メソッドに引数を渡して、特定のフィールドに対する集計やフィルタリングができます。
from peewee import fn
# emailドメインごとのユーザー数を集計
query = User.select(User.email, fn.COUNT(User.email)).group_by(User.email)
for record in query:
print(record.email, record.count)
まとめ
この記事で紹介した基本的な操作だけでも、Peeweeを使ってPythonで簡単にデータベース操作ができることがわかるでしょう。応用例も参考にして、さまざまなケースでのデータベース操作に挑戦してみてください。
コメント