Pythonでpeeweeを使用してDBを作成し複数のテーブルにデータを挿入し取得してみます。
今回はpeeweeを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので事前にインストールする必要があります。
■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)
■peeweeを使用してDBを作成し複数のテーブルにデータを挿入し取得する
では、早速Pythonでpeeweeを使用してDBを作成し複数のテーブルにデータを挿入し取得するスクリプトを書いていきます。
■コード
from peewee import *
db = SqliteDatabase(':memory:')
class Person(Model):
name = CharField()
age = IntegerField()
class Meta:
database = db
class Pet(Model):
name = CharField()
owner = ForeignKeyField(Person, backref='pets')
class Meta:
database = db
# テーブルの作成
db.create_tables([Person, Pet])
# データの挿入
person1 = Person(name='小次郎', age=25)
person1.save()
person2 = Person(name='幸子', age=30)
person2.save()
pet1 = Pet(name='ケン', owner=person1)
pet1.save()
pet2 = Pet(name='ラッキー', owner=person2)
pet2.save()
# データのクエリ
all_people = Person.select()
for person in all_people:
print(person.name, person.age)
all_pet = Pet.select()
for pet in all_pet:
print(pet.name)まず、peeweeモジュールを使用してインメモリデータベースを作成し2つのテーブルを定義します。SqliteDatabaseクラスを使用しインメモリデータベースを作成します。データはメモリ内でのみ保持されるため、プログラムの実行が終了するとデータは消えます。次に、PersonとPetという2つのモデル(テーブル)を定義します。
定義後、Personモデルでは、nameとageという2つのフィールドを定義します。Petモデルでは、nameとownerという2つのフィールドを定義。ownerフィールドはPersonモデルとの関連を持ち、ForeignKeyFieldを使用して関連付けられています。
その後、create_tables()関数を使用してテーブルを作成します。create_tables()関数は、引数、パラメータとしてモデル(テーブル)のリストを受け取り、データベース内にテーブルを作成。データの挿入では、PersonとPetのインスタンスを作成し、save()関数を呼び出してデータベースに保存します。
保存後、データのクエリでは、select()メソッドを使用してデータベースからデータを取得します。select()関数を用いて、全てのレコードを取得するためのクエリを実行し、結果を返します。それぞれの結果をforループで取得し、情報を表示します。
■検証・実行
今回書いたスクリプトを「p_data.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、インメモリデータベースを使用しPersonとPetのデータを作成し、取得。取得後、挿入したデータを表示させることができました。今回はデータは日本語のデータでしたが日本語であっても表示されることが確認できました。


コメント