初めに
今までにPostgresを操作するために必要なものはライブラリとして作ってしまった方が楽だなと思いライブラリにしてみました。基本的な機能は以前書いたflaskのラッピングをしている中で作成したDB用の部分をライブラリにしたものになります。
インストール
pip install git+https://github.com/KiharaTakahiro/pgsupporter.git
簡単な使い方
psycopg2を使用しているのでQueryの書き方等は基本的に同じです
from pgsupporter import start_transaction, DbConnecter
connector = DbConnecter("DB名","ホスト名", "ユーザ名", "パスワード")
# 参照系
with start_transaction(connector=connector) as tx:
sql = "SQL文"
values = [] # パラメタを指定する場合は引数が必要
# 1件取得
result = tx.find_one(sql, values)
# 全件取得
result = tx.find_all(sql, values)
print(result)
# 更新系 readonlyではないのでFalseを指定するのがポイントです
with start_transaction(False, connector=connector) as tx:
sql = "SQL文"
values = [] # パラメタを指定する場合は引数が必要
tx.save(sql, values)
クエリビルダ使用
下記のように使用することでクエリビルダも使用できます。
from pgsupporter import start_transaction, DbConnecter, QueryBuilder
with start_transaction(connector=connector) as tx:
query_result = QueryBuilder(tx=tx)table('{テーブル名}').where('{フィールド名}', '=', 2).or_where('{フィールド名2}', '=', 3).select()
print(query_result)
クエリビルダのその他の細かな使い方は下記と同じのため興味があればご参照ください。
終わりに
どちらかといえば今回はライブラリとして提供することを試してみるためにやってみましたが、せっかく簡単に使えるようにしたのでこのような紹介をさせていただきました。
今まで作ったものを細かくライブラリにして使いやすくするのは結構いいなと思い始めてきたので徐々にライブラリ化していこうと思います。