Peeweeを使ってPythonでデータベース操作の基本を学ぶ

この記事では、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で簡単にデータベース操作ができることがわかるでしょう。応用例も参考にして、さまざまなケースでのデータベース操作に挑戦してみてください。

コメント

コメントする

目次