前回の記事でpeeweeの全文検索についての方法をまとめましたが今回は通常のSELECTに焦点を当てて
内容を整理してみようかと思います。
参考資料
環境
- peewee:3.14.2
- python3.8
記載する取得方法について
ここではpeeweeで推奨されているatomic()
を使用した方法を紹介します
atomic()
の詳細については以下を参照してください
全件取得の場合
全件取得の場合は単純にselectで取得します
返却値は配列で取得できるので配列の中身を
model_to_dict(query)
を使用してDictに変換します
try:
with db.atomic():
query = TEST_DB.select()
except Exception as e:
db.rollback()
raise(e)
return model_to_dict(query) # model_to_dictで取得データをdictに変更する
条件を指定した取得の場合
条件を設定する場合はwhereに検索条件を挿入します
またフィルタリングを行う場合はselectに引数で指定します
返却値は配列で取得できるので配列の中身を
model_to_dict(query)
を使用してDictに変換します
try:
with db.atomic():
query = TEST_DB.select(
TEST_DB.cat) \ #取得するカラムを絞る場合はselectのパラメータに対象カラムを指定
.where(
TEST_DB.cat =="検索条件", #検索条件をwhereに指定する
TEST_DB.is_deleted == False
)
except Exception as e:
db.rollback()
raise(e)
1件だけ取得する場合
1件だけ取得する場合はget()を使用します
※get()を使用する場合は1件が確実に取得できる場合です
取得できなかった場合はDoesNotExistがスローされます
try:
with db.atomic():
query = TEST_DB.select(
EST_DB.cat) \ #取得するカラムを絞る場合はselectのパラメータに対象カラムを指定
.where(
TEST_DB.cat =="検索条件", #検索条件をwhereに指定する
TEST_DB.is_deleted == False
).get() # 1件だけ取得する場合は指定する
except TEST_DB.DoesNotExist as ne:
db.rollback()
raise(ne)
except Exception as e:
db.rollback()
raise(e)
return model_to_dict(query) # model_to_dictで取得データをdictに変更する
返却値は配列ではなく1件のみのデータで取得されますのでそのまま
model_to_dict(query)
を使用してDictに変換します